Создание простейшего приложения

При увеличении ширины или высоты окна ему посылается сообщение WM_PAINT, указывающее на необходимость обновить изображение. Если приложение что-то рисовало в окне, по этому сообщению необходимо повторно вызвать функцию рисования, чтобы восстановить испорченную картинку. По умолчанию системные средства Windows ограничивают область такого обновления только участком, добавленным к окну при его увеличении. Наличие флагов CS__HREDRAW, CS_VREDRAW указывает на необходимость посылки WMPAINT и полной перерисовки окна как при его увеличении, так и при уменьшении.

Назначение других флагов поля style будет рассматриваться по мере необходимости.

После успешной регистрации класса можно создать один или несколько экземпляров окна при помощи функции CreateWindow, синтаксис которой описан ниже:

HWND CreateWindowdPCTSTR lpClassName. LPCTSTR lpWindowName.
DWORD dwStyle.int x.y.nWidth.nHeight. HWND hWndParent. HMENU hMenu. HANDLE hlnstance. LPVOID IpData);

Параметр lpClassName определяет класс создаваемого окна, в нем указывается идентификатор АТОМ или текстовая строка, в которой записано содержимое поля IpszClassName зарегистрированного ранее класса.

Если для создания используется имя оконного класса, вызов может иметь следующий вид:

hWnd - CreateWindow("minim". "Заголовок".

WSJISIBLE I WS_OVERLAPPEDWINDOW.
10. 10. 300. 200. NULL. NULL. KodPril. NULL);

При использовании идентификатора оконного класса первым параметром передается (LPCSTR)WNDClass. Функция CreateWindow() различает тип первого параметра по его старшему слову. Старшее слово идентификатора всегда равно нулю, а адреса хранения строк имеют ненулевое старшее слово.

Функция CreateWindowO создает окно и осуществляет первый вызов оконной процедуры еще до начала выполнения основного цикла. При успешном выполнении функция возвращает дескриптор типа HWND, идентифицирующий окно.

В Windows предусмотрена возможность создания дочерних окон. Обычные окна можно перемещать по всему экрану, а дочерние только - в пределах рабочей области родительского окна. Предусмотрены также специальные средства взаимодействия родительского и дочерних окон. В параметре hWndParent при создании дочернего окна указывают дескриптор родительского окна. В данном случае использовано значение NULL, так как создаваемое окно не дочернее.


⇐ Предыдущая| |Следующая ⇒