Операционная система Microsoft Windows 3.1 для программиста -том 2


Функции для создания диалоговой панели


В программном интерфейсе Windows определены восемь функций, предназначенных для создания модальных и немодальных диалоговых панелей.

Для создания модальной диалоговой панели чаще всего используется функция DialogBox:

int WINAPI DialogBox( HINSTANCE hInstance, LPCSTR lpszTemplate, HWND hwndOwner, DLGPROC dlgprc);

Через параметр hInstance необходимо передать идентификатор текущей копии приложения.

Параметр lpszTemplate представляет собой указатель на строку имени шаблона, указанном в операторе DIALOG текстового описания шаблона.

Параметр hwndOwner - идентификатор окна, создавшего диалоговую панель.

Последний параметр, dlgprc, представляет собой адрес функции диалога.

Если при создании диалоговой панели ей необходимо передать параметр, воспользуйтесь функцией DialogBoxParam:

int WINAPI DialogBoxParam( HINSTANCE hInstance, LPCSTR lpszTemplate, HWND hwndOwner, DLGPROC dlgprc, LPARAM lParamInit);

Эта функция полностью аналогична функции DialogBox, за исключением дополнительного параметра lParamInit. Значение этого параметра передается через параметр lParam сообщения WM_INITDIALOG и может быть проанализировано на этапе создания диалоговой панели.

Как мы уже говорили, существует редко используемая возможность создания диалоговой панели с помощью шаблона, сформированного непосредственно в памяти (а не загруженного из ресурсов приложения). Для создания таких диалоговых панелей предназначены функции DialogBoxIndirect и DialogBoxIndirectParam.

Функция DialogBoxIndirect аналогична функции DialogBox, но в качестве второго параметра в ней используется не указатель на строку имени шаблона, а идентификатор глобального блока памяти, в котором подготовлен шаблон:

int WINAPI DialogBoxIndirect( HINSTANCE hInstance, HGLOBAL hglbDlgTemplate, HWND hwndOwner, DLGPROC dlgprc);

Функция DialogBoxIndirectParam аналогична функции DialogBoxIndirect, но имеет дополнительный параметр lParamInit:

int WINAPI DialogBoxIndirectParam( HINSTANCE hInstance, HGLOBAL hglbDlgTemplate, HWND hwndOwner, DLGPROC dlgprc, LPARAM lParamInit);




Начало  Назад  Вперед