Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Немодальные диалоги в модальном |
Автор: Comm 7.3.2010, 19:42 |
Всем добрый вечер. Дело в том что я делаю прогу,в ней присутствует элемент "Tab control" закладки для таб контрола я создаю с помощью CreateDialogXXXXX ну и при нажатии на одной из вкладок таб контрола отображаю/скрываю контент диалогов. Всё бы ничего если бы главное окно программы не являлось модальным(созданное с помощью DialogBoxParam) я запутался ,куда вставлять IsDialogMessage требуемый для корректной обработки сообщений немодальных дочерних окон.. Ведь насколько я знаю у созданных окон DialogBoxParam свой неявный обработчик сообщений. Если кому не трудно набросайте пожалуйста скелет обработки сообщений немодальных окон в модальном =) Спасибо Всем за помощь. |
Автор: Comm 7.3.2010, 22:26 |
Действительно,спасибки +1 |
Автор: Comm 8.3.2010, 23:49 |
GremlinProg ,не подскажешь почему при вызове функции CreateDialogXXXXX если указать hWndParent хендл табконтрола а не главного окна, то при попытке нажать на какой либо элемент управления у немодального диалога программа виснет ? Насколько я понял это происходит за-за того что сообщения посылаются онкну владельцу, т.е. таб контролу ,у которого нет обработчика .. или я неправильно понял ? Ещё один вопросик, как можно узнать координаты верхней части клиентской области таб контрола ? А то я не могу нормально отобразить контент диалогового окна,оно частично перекрывает надписи вкладок |
Автор: GremlinProg 9.3.2010, 10:22 |
виснет, значит где-то есть цикл, или рекурсия, пробуй по очереди перекрывать обработку сообщений, которые уже написал, как найдешь - выкладывай его суть, будем решать |
Автор: Comm 9.3.2010, 17:11 | ||||
Совсем забыл,программа виснет если указать DS_CONTROL в "Control styles" и WS_CHILD в "Window Styles" немдального диалогового окна ,и если указать hWndParent хендл табконтрола а не главного окна Собственно никакой обработки я пока не делал...в том то дело что даже при такой ситуации виснет
|
Автор: GremlinProg 10.3.2010, 13:44 | ||
я вообще не вижу таких свойств у диалога, DS_CONTROL - стиль, такой же как и WS_CHILD, указывать их можно в стилях (свойство STYLE в *.rc) |
Автор: Comm 11.3.2010, 21:15 |
Вот нашел,там вроде такая же проблема,что делать ясно...но почему так происходит не понятно.. http://forum.sources.ru/index.php?showtopic=194454 |
Автор: BEOWOLF 26.3.2010, 04:37 | ||||
Есть один небольшой совет насчёт немодальных диалогов, может пригодиться. Вобщем, объявляете глобальные переменные (или такие к которым есть везде доступ) HWND hdlgCurrent; HACCEL haccelCurrent; затем во всех функциях диалогов, не помешает даже в модальных, написать вот такую обработку:
затем в главном цикле написать это:
|