Отправляет 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

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

Нет.

Перевод

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

CFHookProc

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

UINT_PTR CALLBACK CFHookProc(
    HWND hdlg,
    UINT uiMsg,
    WPARAM wParam,
    LPARAM lParam
);

Параметры

hdlg – дескриптор диалогового окна, для которого предназначаются сообщения.
uiMsg – идентифицирует получаемое сообщение.
wParam - определяет дополнительную информацию о сообщении. Точное значение параметра
зависит от значения параметра uiMsg.
lParam - определяет дополнительную информацию о сообщении. Точное значение параметра
зависит от значения параметра uiMsg. Если значение параметра uiMsg определяет
сообщение WM_INITDIALOG, то значение lParam является указателем на структуру
типа CHOOSEFONT, содержащую значения, заданные при создании диалогового окна.

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

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

Комментарии

Когда вы используете функцию ChooseFont для создания диалогового окна выбора
шрифта, вы можете указать функцию-ловушку CFHookProc для обработки сообщений
или уведомлений, предназначенных для диалоговой процедуры. Для указания функции-ловушки
используйте структуру типа CHOOSEFONT, которую вы передаете в функцию создания
диалогового окна. Укажите адрес функции-ловушки в значении члена lpfnHook и флаг
CF_ENABLEHOOK в значении члена Flags структуры.
Диалоговая процедура по умолчанию обрабатывает сообщение WM_INITDIALOG перед
передачей его в функцию-ловушку. Все остальные сообщения функция-ловушка получает
раньше диалоговой процедуры по умолчанию. Возвращаемое функцией значение определяет,
обрабатывает ли сообщения диалоговая процедура по умолчанию, или игнорирует их.
Если функция-ловушка обрабатывает сообщение WM_CTLCOLORDLG, она должна вернуть
действительный дескриптор кисти для отрисовки заднего плана диалогового окна.
Вообще, если функция-ловушка обрабатывает любое из сообщений WM_CTLCOLOR*, она
должна вернуть действительный дескриптор кисти для отрисовки заднего плана элемента
управления.
Не вызывайте функцию EndDialog из функции-ловушки. Вместо этого, функция ловушка
может вызвать функцию PostMessage для отправки сообщения WM_COMMAND со значением
IDABORT диалоговой процедуре. Отправка IDABORT закрывает диалоговое окно и заставляет
диалоговую процедуру вернуть FALSE. Если вам необходимо знать, почему функция-ловушка
закрыла диалоговое окно, вы должны предоставить собственный механизм коммуникации
между функцией-ловушкой и приложением.
Вы можете сабклассировать стандартные элементы управления диалогового окна. Тем
не менее, диалоговая процедура может также сабклассировать элементы управления.
Из-за этого, вы должны сабклассировать диалоговое окно при обработке сообщения
WM_INITDIALOG функцией-ловушкой. Это гарантирует, что вы ваша сабклассированная
процедура получит сообщения, специфичные для элемента управления  до того, как
сабклассированная процедура будет установлена диалоговой процедурой.

Требования

Заголовок: объявлена в Commdlg.h, подключать Windows.h.
Библиотека импорта: нет.
Минимальные версии ОС: включена в Windows 95, Windows NT 3.1.

См. также

ChooseFont, CHOOSEFONT, EndDialog, PostMessage, WM_INITDIALOG, WM_CTLCOLORDLG.

Справочник по 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
Отписаться
Убрать рекламу

В избранное