Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы


Инициализация MDI-приложения - часть 2


Обратите внимание на поле hIcon. Так как окно Document Window может быть минимизировано пользователем (свернуто в пиктограмму), вы должны определить эту пиктограмму в классе окна Document Window. Если приложение создает окна Document Window на базе нескольких классов и эти окна будут использованы для отображения документов различного типа, для каждого класса имеет смысл определить свою пиктограмму.

Для определения цвета фона окна Document Window мы рекомендуем воспользоваться константой COLOR_WINDOW. При этом пользователь сможет управлять цветом фона окна Document Window при помощи приложения Control Panel.

Заметим, что приложение, которое "ведет себя хорошо", не навязывает пользователю вкусы разработчика приложения, а позволяет ему выполнить настройку внешнего вида самостоятельно. Для того чтобы ваше MDI-приложение было похоже по внешнему виду на стандартные (такие как, например, Program Manager), используйте системные цвета.

Итак, мы зарегистрировали класс для главного окна приложения Frame Window и один или несколько классов для создания окон Document Window. На следующем этапе инициализации нужно создать окна Frame Window и Client Window.

Окно Frame Window создается точно также, как и главное окно обычного приложения. Например:

hwndFrame = CreateWindow( szFrameClassName, // имя класса окна szWindowTitle, // заголовок окна WS_OVERLAPPEDWINDOW, // стиль окна CW_USEDEFAULT, 0, // задаем размеры и расположение CW_USEDEFAULT, 0, // окна, принятые по умолчанию 0, // идентификатор родительского окна 0, // идентификатор меню hInstance, // идентификатор приложения NULL); // указатель на дополнительные параметры

Для создания окна Client Window необходимо использовать предопределенный класс окна "MDICLIENT":

CLIENTCREATESTRUCT clcs; clcs.hWindowMenu = GetSubMenu(GetMenu(hwnd), ID_WINDOWMENU); clcs.idFirstChild = ID_MDIWINDOW;

hwndClient = CreateWindow( "MDICLIENT", // имя класса окна NULL, // заголовок окна WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE | // стиль окна WS_HSCROLL | WS_VSCROLL, 0, 0, 0, 0, hwnd, // идентификатор родительского окна (HMENU)ID_CLIENTWINDOW, // идентификатор дочернего окна hInst, // идентификатор приложения (LPSTR)&clcs); // указатель на дополнительные параметры




- Начало -  - Назад -  - Вперед -