Создание главного окна


Первое окно, которое создает прикладная программа - обычно основное окно (main window). Вы создаете основное окно, используя функцию CreateWindowEx, которая определяет класс, имя, стили окна, размер, позицию, дескриптор меню, дескриптор экземпляра и данные для создания. Основное окно принадлежит определяемому приложением классу окна, таким образом, Вы должны зарегистрировать класс окна и предоставить оконную процедуру для класса перед созданием основного окна.

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

Следующий пример создает основное окно, принадлежащее к классу окна определенному прикладной программой. Имя окна, "Основное Окно", появится в строке заголовка окна. Объединяя стили WS_VSCROLL и WS_HSCROLL со стилем WS_OVERLAPPEDWINDOW, прикладная программа создает основное окно с горизонтальными и вертикальными линейками прокрутки в дополнение к компонентам, предоставляемым стилем WS_OVERLAPPEDWINDOW. Четырехкратное повторение константы CW_USEDEFAULT устанавливает начальный размер и позицию окна в значения, определенные системой по умолчанию. Устанавливая значение ПУСТО (NULL), вместо дескриптора меню, окно получит меню, определенное для класса окна.

Демонстрационный пример

HINSTANCE hinst;
HWND hwndMain;
// Создание основного окна.
hwndMain = CreateWindowEx(
0,                     // расширения стилей нет
"MainWClass",          // имя класса
"Основное окно",       // имя окна
WS_OVERLAPPEDWINDOW |  // перекрывающее окно
WS_HSCROLL |           // горизонтальная линейка прокрутки
WS_VSCROLL,            // вертикальная линейка прокрутки
CW_USEDEFAULT,         // горизонтальная позиция по умолчанию
CW_USEDEFAULT,         // вертикальная позиция по умолчанию
CW_USEDEFAULT,         // ширина по умолчанию
CW_USEDEFAULT,         // высота по умолчанию
(HWND) NULL,           // окно не родительское или
        // имеющее в собственности окна 
(HMENU) NULL,          // используемый класс меню
hinstance,             // дескриптор экземпляра
NULL);                 // нет данных создания окна
if (!hwndMain)
return FALSE;
// Показывает окно, использующее флажок, определенный программой,
// которая запускает прикладную программу и отправляет в приложение
// сообщение WM_PAINT.
ShowWindow(hwndMain, SW_SHOWDEFAULT);
UpdateWindow(hwndMain);

Обратите внимание!, что предшествующий пример вызывает функцию ShowWindow после создания основного окна. Это сделано потому, что система автоматически не отображает на экране основное окно после его создания. Передавая флажок SW_SHOWDEFAULT в ShowWindow, приложение позволяет программе, которая запустила приложение, установить начальное состояние показа основного окна. Функция UpdateWindow отправляет окну свое первое сообщение WM_PAINT.

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz