Отправляет email-рассылки с помощью сервиса Sendsay

WinAPI на русском

  Все выпуски  

WinAPI на русском


Информационный Канал Subscribe.Ru

Здравствуйте, уважаемые подписчики. Перед вами очередной выпуск рассылки "WinAPI
на русском".

Сайт рассылки: http://www.bcbdev.ru. Материалы по Win32 API, C++Builder.

Раздел "WinAPI": http://www.bcbdev.ru/winapi.htm
Раздел "C++Builder": http://www.bcbdev.ru/cbuilder.htm
Раздел "Примеры кода": http://www.bcbdev.ru/codesamples.htm
Раздел "MSDN по-русски": http://www.bcbdev.ru/msdn/index.php

Обновления на сайте

Нет.

Перевод

Сегодня вашему вниманию представлен перевод функции DialogBoxIndirect.

DialogBoxIndirect

Макрос DialogBoxIndirect создает в памяти модальное диалоговое окно из ресурса
– шаблона диалогового окна. DialogBoxIndirect не возвращает управления до тех
пор, пока указанная функция обратного вызова не завершит диалоговое окно, вызвав
функцию EndDialog. Макрос DialogBoxIndirect использует функцию DialogBoxIndirectParam.

int DialogBoxIndirect(

    HINSTANCE hInstance,        // дескриптор экземпляра приложения
    LPCDLGTEMPLATE lpTemplate,  // указатель на шаблон диалогового окна
    HWND hWndParent,    // дескриптор окна-владельца
    DLGPROC lpDialogFunc        // указатель на оконную процедуру
// диалогового окна
   );

Параметры

hInstance – идентифицирует экземпляр модуля, который создает диалоговое окно.
lpTemplate – указатель на глобальный объект памяти, содержащий шаблон, который
DialogBoxIndirect использует для создания диалогового окна. Шаблон диалогового
окна состоит из заголовка, который описывает диалоговое окно, за которым следует
один или более дополнительных блоков данных, которые описывают каждый из элементов
управления диалогового окна. Шаблон может использовать стандартный или расширенный
формат.
В стандартном шаблоне заголовок представляет собой структуру DLGTEMPLATE, за
которой следуют массивы переменной длины. Данные для каждого из элементов управления
состоят из структуры DLGITEMTEMPLATE, за которой следуют массивы переменной длины.
В расширенном шаблоне диалогового окна заголовок использует формат DLGTEMPLATEEX
и определения элементов управления используют формат DLGITEMTEMPLATEEX.
hWndParent – идентифицирует окно, владеющее диалоговым окном.
lpDialogFunc – указатель на оконную процедуру диалогового окна. Для дополнительной
информации об этой процедуре смотрите DialogProc.

Возвращаемые значения

В случае успеха возвращаемое значение представляет собой значение параметра nResult,
указанное при вызове функции EndDialog, которая используется для завершения диалогового
окна.
В случае неудачи возвращается –1.

Комментарии

Макрос DialogBoxIndirect использует функцию CreateWindowEx для создания диалогового
окна. Затем DialogBoxIndirect отправляет сообщение WM_INITDIALOG оконной процедуре
диалогового окна. Если шаблон задает стиль DS_SETFONT, функция также отправляет
сообщение WM_SETFONT оконной процедуре диалогового окна. Функция отображает диалоговое
окно, (вне зависимости от указания стиля WS_VISIBLE в шаблоне), блокирует окно-владелец,
и начинает свой собственный цикл сообщений для получения и передачи сообщений
для диалогового окна.
Когда оконная процедура диалогового окна вызывает функцию EndDialog, DialogBoxIndirect
разрушает диалоговое окно, завершает цикл сообщений, разблокирует окно-владелец
(если оно ранее, до вызова функции, не было блокировано) и возвращает значение
параметра nResult.

В стандартном шаблоне диалогового окна структура DLGTEMPLATE и каждая из структур
DLGITEMTEMPLATE должны быть выровнены по DWORD. Массив данных, находящийся после
структуры DLGITEMTEMPLATE, также должен быть выровнен по DWORD. Все остальные
массивы переменной длины в шаблоне должны быть выровнены по WORD.
В расширенном шаблоне диалогового окна заголовок DLGTEMPLATEEX и каждое из определений
элементов управления DLGITEMTEMPLATEEX должны быть выровнены по DWORD. Массив
данных, находящийся после структуры DLGITEMTEMPLATE, также должен быть выровнен
по DWORD. Все остальные массивы переменной длины в шаблоне должны быть выровнены
по WORD.
Все строки символов в шаблоне диалогового окна, такие как заголовки для диалогового
окна и кнопок, должны быть строками Unicode. Для написания кода, который работает
как в Windows NT, так и в Windows 95, используйте функцию MultiByteToWideChar
для создания строк Unicode.

Windows 95: Система поддерживает максимум 16384 дескрипторов окон.

См. также

CreateWindowEx, DialogBox, DialogBoxIndirectParam, DialogBoxParam, DialogProc,
DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, EndDialog, MultiByteToWideChar,
WM_INITDIALOG, WM_SETFONT.

Справочник по WinAPI: http://www.bcbdev.ru/winapi/win32api.exe
Справочник по WinAPI (zip-версия): http://www.bcbdev.ru/winapi/win32api.zip
Дружественная рассылка "Программирование на WinAPI": http://subscribe.ru/catalog/comp.soft.prog.russianmsdn

С уважением, 
ведущий рассылки
Тарас Сорока.
mailto:stathome@rol.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное