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

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

Пример на сайте: "Шаг 4 - Окно Windows на С".


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков - 04.12.2001