Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
11-1221682651
siealex
2008-09-18 00:17
2010.08.27
KOL и Windows Mobile


2-1269192324
Невилл
2010-03-21 20:25
2010.08.27
Delphi2009 и StringGrid


2-1267790032
Sairex
2010-03-05 14:53
2010.08.27
Как обойти подводный Камень приведения к типу


15-1265188639
12
2010-02-03 12:17
2010.08.27
Тем, кто работал с Oracle и MSSQL. C чем Вам удобнее показалось?


2-1270210504
Вэн
2010-04-02 16:15
2010.08.27
Апдейтер для ММО





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский