|
|
|
| Вроде, немодальный диалог позволяет сделать несколько почти равноправных окон. Но у меня ничего не получается. Просьба не отсылать к петзольду.
Вопросы:
Немодальный диалог может посылать сообщения главному окну? Если может, то как?
Можно ли немодальным диалогом изменять глобальные переменные?(дурацкий вопрос, но все-таки?)
У меня есть модальный работающий диалог. Как сделать из него немодальный? Что добавить в код?
з.ы. Буду очень признателен, если вы не будете прикреплять файлы без пояснений, а просто объясните. | |
|
|
|
|
|
|
|
для: alex19921992
(01.03.2007 в 16:06)
| | >Но у меня ничего не получается.
Вы используете чистый API или какую-то библиотеку (MFC, VCL)?
>Немодальный диалог может посылать сообщения главному окну? Если может, то как?
Да, для этого вам необходимо получить дескриптор главного окна, зачастую это осуществлятеся при помощи функции FindWindow, а затем посылаете событие при помощи функции SendMessage() указывая в качестве первого параметра полученный дескриптор.
>Можно ли немодальным диалогом изменять глобальные переменные?
Не очень понятно... модальные окна практически ни чем от обычных не отличатся, они просто не дают переключаться на другие окна. Имеется в виду не закрывая окно изменить какое-то значение в программе?
>У меня есть модальный работающий диалог. Как сделать из него немодальный? Что добавить в
>код?
Это зависит от того, какую библиотеку вы используете для его запуска? | |
|
|
|
|
|
|
|
для: cheops
(01.03.2007 в 16:56)
| | Я использую чистый АПИ.
>>Да, для этого вам необходимо получить дескриптор главного окна, зачастую это >>осуществлятеся при помощи функции FindWindow, а затем посылаете событие при помощи >>функции SendMessage() указывая в качестве первого параметра полученный дескриптор.
А если я в самом начале проги создал дескриптор и запомнил в нем дескриптор главного окна? так пойдет?
Меня больше всего интересует то, что сообщения от немодальных окон ставятся в одну очередь с главным окном, и как их разаделить?Помогите! | |
|
|
|
|
|
|
|
для: alex19921992
(01.03.2007 в 17:00)
| | Помогите! | |
|
|
|
|
|
|
|
для: alex19921992
(01.03.2007 в 17:00)
| | >А если я в самом начале проги создал дескриптор и запомнил в нем дескриптор главного окна?
>так пойдет?
Да.
>Меня больше всего интересует то, что сообщения от немодальных окон ставятся в одну очередь
>с главным окном, и как их разаделить?
Дело в том, что каждое окно имеет свою собственную функцию диалогового окна, со своими собственными обработчиками событий. Используя дескриптор окна в функции SendMessage() вы посылаете событие конкретному окну, в зависимости от переданного дескриптора. Разумеется при создании нового окна следует назначать новую функцию диалогового окна, а не использовать функцию главного окна. Если каждое окно имеет свою собственную функцию окна - разделение событий будет происходить автоматически. | |
|
|
|
|
|
|
|
для: cheops
(02.03.2007 в 01:33)
| | Короче, я мало что понял из этого.... Но в общем, правильно ли я понимаю, что не стоит париться насчет того, что сообщения могут попасть не туда, куда надо? | |
|
|
|
|
|
|
|
для: alex19921992
(02.03.2007 в 13:01)
| | Да, сообщения разделяются операционной системой. | |
|
|
|
|
|
|
|
для: cheops
(02.03.2007 в 13:24)
| | А че тогда у пецольда написано, что надо юзать ф-ю IsDialogMessage чтоб распределять сообщения между диалогом и гл. окном? | |
|
|
|