Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО / Лекции / КурсЛекций.doc
Скачиваний:
94
Добавлен:
23.02.2015
Размер:
8.22 Mб
Скачать

Как создать главное окно

Как правило, первое окно, создаваемое приложением, является главным окном. Для создания главного окна следует использовать функцию CreateWindowEx(), которая определяет класс окна, имя окна, стили, размер и позицию окна, дескриптор меню, дескриптор копии приложения (instance handle) и дополнительные данные (creation data). Главное окно принадлежит к определяемому приложением классу окна, поэтому Вы должны зарегистрировать класс окна и написать функцию окна прежде чем создавать главное окно.

Большинство приложений используют для главного окна стиль WS_OVERLAPPEDWINDOW. Окна этого стиля имеют заголовок, системное меню, рамку, позволяющую изменять размер окна, кнопки свертывания и развертывания. Функция CreateWindowEx() возвращает дескриптор (handle), который идентифицирует окно уникальным образом.

В приведенном ниже примере создается окно, принадлежащее к определяемому приложением классу окна. Имя окна, "Main Window", появится в заголовке окна. Путем комбинации стилей WS_VSCROLL и WS_HSCROLL со стилем WS_OVERLAPPEDWINDOW приложение создает главное окно с вертикальной и горизонтальной полосами прокрутки в добавление к тем компонентам, которые обеспечивает стиль WS_OVERLAPPEDWINDOW. С помощью константы CW_USEDEFAULT устанавливаются заданные системой по умолчанию позиция и размер окна. Поскольку вместо дескриптора меню указывается NULL, окно будет иметь меню, определенное для класса окна.

HINSTANCE hinst; HWND hwndMain;

// Create the main window. hwndMain = CreateWindowEx( 0, // no extended styles "MainWClass", // class name "Main Window", // window name WS_OVERLAPPEDWINDOW | // overlapped window WS_HSCROLL | // horizontal scroll bar WS_VSCROLL, // vertical scroll bar CW_USEDEFAULT, // default horizontal position CW_USEDEFAULT, // default vertical position CW_USEDEFAULT, // default width CW_USEDEFAULT, // default height (HWND) NULL, // no parent or owner window (HMENU) NULL, // class menu used hinstance, // instance handle NULL); // no window creation data

if (!hwndMain) return FALSE;

// Show the window using the flag specified by the program // that started the application, and send the application // a WM_PAINT message. ShowWindow(hwndMain, SW_SHOWDEFAULT); UpdateWindow(hwndMain);

Обратите внимание, что после создания главного окна вызывается функция ShowWindow(). Это необходимо сделать, т.к. Windows не отображает автоматически окно после его создания. Передавая флаг SW_SHOWDEFAULT функции ShowWindow(), приложение позволяет программе, которая запустила данное приложение, самой устанавливать начальное состояние развернутости (show state) главного окна. Функция UpdateWindow() посылает окну сообщение WM_PAINT.