Главная страница
    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.058 c
2-1268370164
MonoLife
2010-03-12 08:02
2010.08.27
Меню дочерних форм


2-1267340699
Officeman
2010-02-28 10:04
2010.08.27
как задать текст для имени Tclass edit1


15-1274038912
Kerk
2010-05-16 23:41
2010.08.27
Второе место на spbhackday


3-1221840469
andreoman
2008-09-19 20:07
2010.08.27
cxGridDBTableView, фокус и выделение ячейки


2-1270202304
Fr
2010-04-02 13:58
2010.08.27
Локализация программы с помощью Resource DLL Wizard





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский