Win32 API. Окна
Страница 28. Создание основного окна



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

Первое окно, которое создает прикладная программа - обычно основное окно(main window). Вы создаете основное окно, используя функцию CreateWindowEx, которая определяет класс, имя , стили окна, размер, позицию, дескриптор меню, дескриптор экземпляра и данные создания. Основное окно принадлежит определенному прикладной программой классу окна, таким образом, Вы должны зарегистрировать класс окна и предоставить оконную процедуру для класса перед созданием основного окна.
Большинство прикладных программ обычно использует для создания основного окна стиль WS_OVERLAPPEDWINDOW. Этот стиль дает окну строку заголовка, меню окна, рамку установки размеров окна, кнопки свертывание и развертывания окна. Функция CreateWindowEx возвращает дескриптор, который уникально идентифицирует окно.
Следующий пример создает основное окно, принадлежащее к классу окна определенному прикладной программой. Имя окна, " Основное Окно ", появится в строке заголовка окна. Объединяя стили WS_VSCROLL и WS_HSCROLL со стилем WS_OVERLAPPEDWINDOW, прикладная программа создает основное окно с горизонтальными и вертикальными линейками прокрутки в дополнение к компонентам, предоставляемым стилем WS_OVERLAPPEDWINDOW. Четырехкратное повторение константы CW_USEDEFAULT устанавливает начальный размер и позицию окна в зна-чения, определенные системой по умолчанию. Устанавливая значение ПУСТО (NULL), вместо дескриптора меню, окно получит меню, определенное для класса окна.
HINSTANCE hinst;
HWNDhwndMain;

// Создание основного окна.

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 после создания основного окна. Это сделано потому, что Windows автоматически не отображает на экране основное окно после его создания. Передавая флажок SW_SHOWDEFAULT в ShowWindow, прикладная программа позволяет программе, которая запустила приложение, установить начальное состояние показа основного окна. Функция UpdateWindow посылает окну свое первое сообщение WM_PAINT.

 
« Предыдущая статья   Следующая статья »