Не работают кнопки в немодальном диалоге
От: Юрий Жиловец Украина http://www.forth.org.ru/~yz
Дата: 25.02.03 15:34
Оценка:
Сделал обыкновенное (ws_overlapped) окно, изображающее собой диалог.
Чтобы работали кнопки, полагающиеся диалогу (tab, стрелки) вызываю в цикле обработки IsDialogMessage.
Все работает, пока какой-нибудь контрол не получает фокус. Тогда все положенные кнопки перестают действовать. Анализ показал, что контролы просто обрабатывают сами нажатия кнопок и не отдают их окну.
Удивительно, но в настоящих диалоговых окнах контролы работают правильно.
Кто-нибудь знает, в чем дело?
Или хотя бы сможет объяснить внутреннюю машинерию контролов Windows.
Re: Не работают кнопки в немодальном диалоге
От: SergH Россия  
Дата: 25.02.03 15:37
Оценка:
Здравствуйте, Юрий Жиловец, Вы писали:

ЮЖ>Сделал обыкновенное (ws_overlapped) окно, изображающее собой диалог.


А чем не устраивает CreateDialog? Или ты её и используешь, просто я не понял?

ЮЖ>Чтобы работали кнопки, полагающиеся диалогу (tab, стрелки) вызываю в цикле обработки IsDialogMessage.

ЮЖ>Все работает, пока какой-нибудь контрол не получает фокус. Тогда все положенные кнопки перестают действовать. Анализ показал, что контролы просто обрабатывают сами нажатия кнопок и не отдают их окну.
ЮЖ>Удивительно, но в настоящих диалоговых окнах контролы работают правильно.
ЮЖ>Кто-нибудь знает, в чем дело?
ЮЖ>Или хотя бы сможет объяснить внутреннюю машинерию контролов Windows.

А небось меняет им всем оконные процедуры, и в них обрабатывает всё, что нужно.
Делай что должно, и будь что будет
Re[2]: Не работают кнопки в немодальном диалоге
От: SergH Россия  
Дата: 25.02.03 15:39
Оценка:
Здравствуйте, SergH, Вы писали:

SH>А небось меняет им всем оконные процедуры, и в них обрабатывает всё, что нужно.


Или (так проще) в цикле выборки сообщений анализирует WM_KEYDOWN..
Делай что должно, и будь что будет
Re[2]: Не работают кнопки в немодальном диалоге
От: Юрий Жиловец Украина http://www.forth.org.ru/~yz
Дата: 26.02.03 10:55
Оценка:
Здравствуйте, SergH, Вы писали:

SH>Здравствуйте, Юрий Жиловец, Вы писали:


ЮЖ>>Сделал обыкновенное (ws_overlapped) окно, изображающее собой диалог.


SH>А чем не устраивает CreateDialog? Или ты её и используешь, просто я не понял?

Я пишу библиотеку а ля TCL. Мне надо на ходу ставить и убирать контролы на окно. Ресурсы здесь не пройдут.

Ошибку, кстати, я сегодня нашел. Неправильный вызов IsDialogMessage.
Надо передавать msg и дескриптор нужного окна. А я окно из самого msg доставал. Результат оказался сомнительным.

Спасибо за участие.
Re[3]: Не работают кнопки в немодальном диалоге
От: SergH Россия  
Дата: 26.02.03 10:58
Оценка:
Здравствуйте, Юрий Жиловец, Вы писали:

ЮЖ>Я пишу библиотеку а ля TCL. Мне надо на ходу ставить и убирать контролы на окно. Ресурсы здесь не пройдут.


Ясно. Кстати, есть ещё и CreateDialogIndirect — вдруг пригодится..
Делай что должно, и будь что будет
Re[4]: Не работают кнопки в немодальном диалоге
От: Юрий Жиловец Украина http://www.forth.org.ru/~yz
Дата: 26.02.03 11:04
Оценка:
Здравствуйте, SergH, Вы писали:

SH>Здравствуйте, Юрий Жиловец, Вы писали:


ЮЖ>>Я пишу библиотеку а ля TCL. Мне надо на ходу ставить и убирать контролы на окно. Ресурсы здесь не пройдут.


SH>Ясно. Кстати, есть ещё и CreateDialogIndirect — вдруг пригодится..


Не. Во-первых, очень некрасиво и неудобно. А во-вторых, опять же динамики не получится. Там раз нарисовал и все.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.