Форум: Форум C++Разное
Новые темы: 00
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Немодальный диалог.
 
 автор: alex19921992   (01.03.2007 в 16:06)   письмо автору
 
 

Вроде, немодальный диалог позволяет сделать несколько почти равноправных окон. Но у меня ничего не получается. Просьба не отсылать к петзольду.
Вопросы:
Немодальный диалог может посылать сообщения главному окну? Если может, то как?
Можно ли немодальным диалогом изменять глобальные переменные?(дурацкий вопрос, но все-таки?)
У меня есть модальный работающий диалог. Как сделать из него немодальный? Что добавить в код?
з.ы. Буду очень признателен, если вы не будете прикреплять файлы без пояснений, а просто объясните.

  Ответить  
 
 автор: cheops   (01.03.2007 в 16:56)   письмо автору
 
   для: alex19921992   (01.03.2007 в 16:06)
 

>Но у меня ничего не получается.
Вы используете чистый API или какую-то библиотеку (MFC, VCL)?

>Немодальный диалог может посылать сообщения главному окну? Если может, то как?
Да, для этого вам необходимо получить дескриптор главного окна, зачастую это осуществлятеся при помощи функции FindWindow, а затем посылаете событие при помощи функции SendMessage() указывая в качестве первого параметра полученный дескриптор.

>Можно ли немодальным диалогом изменять глобальные переменные?
Не очень понятно... модальные окна практически ни чем от обычных не отличатся, они просто не дают переключаться на другие окна. Имеется в виду не закрывая окно изменить какое-то значение в программе?

>У меня есть модальный работающий диалог. Как сделать из него немодальный? Что добавить в
>код?
Это зависит от того, какую библиотеку вы используете для его запуска?

  Ответить  
 
 автор: alex19921992   (01.03.2007 в 17:00)   письмо автору
 
   для: cheops   (01.03.2007 в 16:56)
 

Я использую чистый АПИ.
>>Да, для этого вам необходимо получить дескриптор главного окна, зачастую это >>осуществлятеся при помощи функции FindWindow, а затем посылаете событие при помощи >>функции SendMessage() указывая в качестве первого параметра полученный дескриптор.
А если я в самом начале проги создал дескриптор и запомнил в нем дескриптор главного окна? так пойдет?

Меня больше всего интересует то, что сообщения от немодальных окон ставятся в одну очередь с главным окном, и как их разаделить?Помогите!

  Ответить  
 
 автор: alex19921992   (01.03.2007 в 19:13)   письмо автору
 
   для: alex19921992   (01.03.2007 в 17:00)
 

Помогите!

  Ответить  
 
 автор: cheops   (02.03.2007 в 01:33)   письмо автору
 
   для: alex19921992   (01.03.2007 в 17:00)
 

>А если я в самом начале проги создал дескриптор и запомнил в нем дескриптор главного окна?
>так пойдет?
Да.

>Меня больше всего интересует то, что сообщения от немодальных окон ставятся в одну очередь
>с главным окном, и как их разаделить?
Дело в том, что каждое окно имеет свою собственную функцию диалогового окна, со своими собственными обработчиками событий. Используя дескриптор окна в функции SendMessage() вы посылаете событие конкретному окну, в зависимости от переданного дескриптора. Разумеется при создании нового окна следует назначать новую функцию диалогового окна, а не использовать функцию главного окна. Если каждое окно имеет свою собственную функцию окна - разделение событий будет происходить автоматически.

  Ответить  
 
 автор: alex19921992   (02.03.2007 в 13:01)   письмо автору
 
   для: cheops   (02.03.2007 в 01:33)
 

Короче, я мало что понял из этого.... Но в общем, правильно ли я понимаю, что не стоит париться насчет того, что сообщения могут попасть не туда, куда надо?

  Ответить  
 
 автор: cheops   (02.03.2007 в 13:24)   письмо автору
 
   для: alex19921992   (02.03.2007 в 13:01)
 

Да, сообщения разделяются операционной системой.

  Ответить  
 
 автор: alex19921992   (02.03.2007 в 17:44)   письмо автору
 
   для: cheops   (02.03.2007 в 13:24)
 

А че тогда у пецольда написано, что надо юзать ф-ю IsDialogMessage чтоб распределять сообщения между диалогом и гл. окном?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования