Страница 28 из 30
Создание основного окнаПервое окно, которое создает прикладная программа - обычно основное окно(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. |