Программирование для IBM OS2

         

Функция WinCreateWindow


Приведем прототип функции WinCreateWindow , предназначенной для создания окон (и, в частности, окон органов управления):

HWND WinCreateWindow ( HWND hwndParent, // родительское окно PSZ pszClass, // имя класса PSZ pszName, // заголовок окна ULONG flStyle, // стиль класса окна LONG x, // координата по оси X LONG y, // координата по оси Y LONG cx, // ширина LONG cy, // высота HWND hwndOwner, // окно-владелец HWND hwndInsertBehind, // окно-брат, за которым // отображается окно ULONG id, // идентификатор окна PVOID pCtlData, // управляющие данные PVOID pPresParams); // параметры отображения

В качестве параметра hwndParent вы должны указать идентификатор дочернего окна.

Параметр pszClass определяет имя класса, на базе которого создается окно. Для кнопки здесь необходимо указать имя WC_BUTTON .

Параметр pszName задает текст для окна. Если создается кнопка, то это тот самый текст, который будет написан на кнопке.

С помощью параметра flStyle можно указать стиль класса окна, определяющий поведение и внешний вид окон, создаваемых на базе этого класса. Этот параметр мы опишем немного позже.

Расположение окна и его размеры определяется параметрами x (координата по оси X), y (координата по оси Y), cx (ширина), cy (высота).

Параметр hwndOwner определяет идентификатор окна-владельца, которое будет получать извещающие сообщения от создаваемого дочернего окна. Если вы создаете кнопку, то сообщения, возникающие при ее нажатии, будут передаваться именно в это окно.

Через параметр hwndInsertBehind передается идентификатор братского (или сестринского, что одно и то же) окна, за которым будет нарисовано создаваемое окно. Вы можете также указать константы HWND_TOP или HWND_BOTTOM . В первом случае создаваемое окно окажется наверху, во втором - за всеми остальными братскими окнами.

Идентификатор, передаваемый через параметр id, играет важную роль при обработке сообщений, поступающих в окно, владеющее создаваемым дочерним окном. Анализируя этот идентификатор, функция окна может определить, от какого окна поступило сообщение. Поэтому если окно создает несколько дочерних окон, каждое из них должно иметь свой идентификатор.

При помощи параметра pCtlData (указатель) вы можете передать данные функции создаваемого дочернего окна. Этот указатель будет передан в параметре mp1 сообщения WM_CREATE , поступающего в функцию дочернего окна при его создании.

Аналогично, данные, передаваемые через параметр pPresParams, также попадают в функцию дочернего окна через параметр mp2 сообщения WM_CREATE . Для того чтобы понять, как использовать параметр pPresParams, опишем подробнее параметры сообщения WM_CREATE.



Содержание раздела