Форум: "WinAPI";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизКласс диалогового окна Найти похожие ветки
← →
Дмитрий (2009-03-15 11:21) [0]Здравствуйте,
Требуется создать окно из диалога, но так чтобы получившееся окно имело свое имя класса, не стандартное #32769. А во всем остальном, чтобы был обычный dialog box. Подскажите, как это можно сделать, и можно ли вообще?
← →
DVM © (2009-03-15 15:03) [1]Remarks
The DefDlgProc function is the window procedure for the predefined class of dialog box. This procedure provides internal processing for the dialog box by forwarding messages to the dialog box procedure and carrying out default processing for any messages that the dialog box procedure returns as FALSE. Applications that create custom window procedures for their custom dialog boxes often use DefDlgProc instead of the DefWindowProc function to carry out default message processing.
Applications create custom dialog box classes by filling a WNDCLASS structure with appropriate information and registering the class with the RegisterClass function. Some applications fill the structure by using the GetClassInfo function, specifying the name of the predefined dialog box. In such cases, the applications modify at least the lpszClassName member before registering. In all cases, the cbWndExtra member of WNDCLASS for a custom dialog box class must be set to at least DLGWINDOWEXTRA.
The DefDlgProc function must not be called by a dialog box procedure; doing so results in recursive execution.
Замечания
Функция DefDlgProc - оконная процедура для предопределенного класса блока диалога. Эта процедура обеспечивает внутреннюю обработку для диалогового окна, отправляя сообщения в процедуру диалогового окна, и выполняя обработку по умолчанию любых сообщений, для которых процедура диалогового окна возвращает значение такое, как ЛОЖЬ (FALSE). Прикладные программы, которые создают пользовательские оконные процедуры для своих пользовательских блоков диалога, часто используют DefDlgProc вместо функции DefWindowProc, чтобы выполнить заданную по умолчанию обработку сообщения.
Прикладные программы создают пользовательские классы диалогового окна, заполняя структуру WNDCLASS соответствующей информацией и регистрируя класс при помощи функции RegisterClass. Некоторые прикладные программы заполняют структуру, используя функцию GetClassInfo, определяя название предопределенного диалогового окна. В таких случаях, прикладные программы изменяют, по крайней мере, член структуры lpszClassName перед регистрацией. Во всех случаях, член cbWndExtra структуры WNDCLASS для пользовательского класса диалогового окна должен быть установлен по крайней мере в DLGWINDOWEXTRA.
Функция DefDlgProc не должна вызваться процедурой диалогового окна; поступив так, вы приведете ее к рекурсивному выполнению. (Примечание переводчика: то есть «подвесите» систему.)
← →
DVM © (2009-03-15 15:05) [2]вот пример кода, где диалогу как раз назначается свое имя класса
http://www.source-code.ru/msdn/howto/q114612.shtml
← →
Дмитрий (2009-03-16 06:09) [3]Спасибо, DVM
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.061 c