Создание главного окна
Первое окно, которое создает прикладная программа - обычно
основное окно (main window). Вы создаете основное окно, используя функцию CreateWindowEx, которая определяет класс, имя, стили окна, размер, позицию, дескриптор меню, дескриптор экземпляра и данные для создания. Основное окно принадлежит определяемому приложением классу окна, таким образом, Вы должны зарегистрировать класс окна и предоставить оконную процедуру для класса перед созданием основного окна.Большинство прикладных программ обычно использует для создания основного окна стиль
WS_OVERLAPPEDWINDOW. Этот стиль дает окну заголовок, Системное меню (окна), рамку установки размеров, кнопки свертывание и развертывания окна. Функция CreateWindowEx возвращает дескриптор, который уникально идентифицирует окно.Следующий пример создает основное окно, принадлежащее к классу окна определенному прикладной программой. Имя окна, "Основное Окно", появится в строке заголовка окна. Объединяя стили
WS_VSCROLL и WS_HSCROLL со стилем WS_OVERLAPPEDWINDOW, прикладная программа создает основное окно с горизонтальными и вертикальными линейками прокрутки в дополнение к компонентам, предоставляемым стилем WS_OVERLAPPEDWINDOW. Четырехкратное повторение константы CW_USEDEFAULT устанавливает начальный размер и позицию окна в значения, определенные системой по умолчанию. Устанавливая значение ПУСТО (NULL), вместо дескриптора меню, окно получит меню, определенное для класса окна.Демонстрационный пример
HINSTANCEhinst; 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) returnFALSE; // Показывает окно, использующее флажок, определенный программой, // которая запускает прикладную программу и отправляет в приложение // сообщение WM_PAINT. ShowWindow(hwndMain, SW_SHOWDEFAULT); UpdateWindow(hwndMain); |
Обратите внимание!, что предшествующий пример вызывает функцию ShowWindow после создания основного окна. Это сделано потому, что система автоматически не отображает на экране основное окно после его создания. Передавая флажок SW_SHOWDEFAULT в ShowWindow, приложение позволяет программе, которая запустила приложение, установить начальное состояние показа основного окна. Функция UpdateWindow отправляет окну свое первое сообщение WM_PAINT. |