Глава 26. Многодокументный интерфейс 759
Обработка сообщений MDI. Естественно, функционирование приложений MDI немыслимо без участия некоторого набора сообщений Windows. В табл. 26.4 приведены основные сообщения MDI и их назначение в приложениях.
Сообщение MDI |
Назначение |
WM MDIACTIVE |
Передается клиенту MDI для активизации конкретного до |
|
чернего окна |
WMMDICASCADE |
Передается клиенту MDI для каскадного расположения его |
|
окон |
WMMDICREATE |
Передается клиенту MDI для создания дочернего окна |
WM MDIDESTROY |
Передается клиенту MDI для'уничтожения дочернего окна |
WMMDIGETACTIVE |
Передается клиенту MDI для поиска активного дочернего |
|
окна |
WMMDIICONARRANGE |
Передается клиенту MDI для упорядочения значков его до |
|
черних окон |
WMMDIMAXIMIZE |
Передается клиенту MDI для развертывания дочернего окна |
WMMDINEXT |
Передается клиенту MDI для активизации дочернего окна, |
|
следующего за текущим активным окном |
WMMDIRESTORE |
Передается клиенту MDI для восстановления размеров конкретного дочернего окна (свернутого или развернутого) |
WM MDITILE |
Передается клиенту MDI для расположения его дочерних |
|
окон мозаикой |
Некоторые из этих сообщений передают дополнительную информацию через свои параметры iparam и wparam (более подробно эти сообщения описаны в справочной системе для Win 16 или Win32). Совсем необязательно стараться использовать все эти сообщения.
Для обеспечения основных свойств приложений MDI для большинства из этих сообщений предусмотрен механизм обработки по умолчанию (то есть эту миссию берет на себя Windows), и класс TMDiciient вовсю этим пользуется. Большинство сообщений он самостоятельно не обрабатывает. Однако некоторые функции класса TMDiciient, чтобы обеспечить надлежащую обработку по умолчанию, пересылают эти сообщения классу. В качестве примера МОЖНО Привести функцию CascadeChildren ():
void TMDiciient::CascadeChildren()
HandleMessage(WM_MDICASCADE) ;