Создание дочерних окон
Часть FrameWndProc связана с обработкой сообщений WM_COMMAND, которые информируют о выборе какого – либо пункта меню. Как обычно, параметр wParam сообщения в FrameWndProc содержит идентификатор меню.
При значениях параметра wParam IDM_NEWHELLO и IDM_NEWRECT, FrameWndProc должна создать новое окно документа. Это требует инициализации полей структуры MDICREATESTRUCT (часть которых соответствует параметрам функции CreateWindo w) и отправки окну – сообщения WM_MDICREATE с параметром lPara m, равным указателю на эту структуру. Затем окно – создает дочернее окно документа. FrameWndPro c, вызывая функцию CreateMDIWindo w, могла бы сама создать это дочернее окно. Для программы, имеющей один поток, такой как MDIDEMO, можно выбрать любой из этих методов.
Как правило, поле szTitle структуры MDICREATESTRUCT является именем файла, соответствующего документу. В поле style могут быть заданы стили окна WS_HSCROLL, или WS_VSCROLL, или оба вместе, что позволяет включить в окно документа полосы прокрутки . ( ShowScrollBar для вывода полос прокрутки на экран вызывать не обязательно). В поле style могут быть также указаны стили WS_MINIMIZE или WS_MAXIMIZE для первого появления окна документа в свернутом или развернутом состоянии.
Поле lParam структуры MDICREATESTRUCT дает возможность главному и дочернему окну использовать некоторые общие переменные. Этому полю можно присвоить значение описателя памяти , соответствующего блоку памяти , содержащему структуру . При обработке сообщения WM_CREATE в дочернем окне документа , параметр lParam — это указатель на структуру CREATESTRUCT, а поле lpCreateParams этой структуры — это указатель на структуру MDICREATESTRUCT, используемую для создания окна .
При получении сообщения WS_MDICREATE окно - создает дочернее окно документа и добавляет заголовок окна к нижней части подменю, заданного в структуре MDICREATESTRUCT, которая используется для создания окна. Когда программа MDIDEMO создает свое первое окно документа, этим подменю является подменю File меню MdiMenuIni t. Позже мы увидим, как этот список документов переносится в подменю Window меню MdiMenuHello и MdiMenuRec t.
В меню может быть перечислено до девяти документов, перед каждым из которых ставится номер от 1 до 9. Номер подчеркивается. Если создается более девяти окон документов, то за этим списком появляется пункт меню "More windows". Выбор этого пункта вызывает появление окна диалога содержащего список, в котором перечислены все окна документов. Поддержка такого списка документов — это одно из самых лучших характеристик поддержки MDI в Windows.
Дата добавления: 2016-11-22; просмотров: 602;