Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 322
от 15.10.2006, 19:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 378, Экспертов: 37
В номере:Вопросов: 1, Ответов: 3


Вопрос № 58426: Как через CreateWindowEx создать модальное окно (не диалоговое)? Т.е. чтобы в то время когда окно открыто, другие окна программы не получали фокус. ..

Вопрос № 58.426
Как через CreateWindowEx создать модальное окно (не диалоговое)?
Т.е. чтобы в то время когда окно открыто, другие окна программы не получали фокус.
Отправлен: 10.10.2006, 19:17
Вопрос задал: Bcd (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Bob Johnson
Здравствуйте, Bcd!
модальное окно - это заслуга не функции CreateWindowEx.
модальное окно создается совершенно аналогично обычному, но перед тем как вывести его на экран, родительское окно disable'ится функцией EnableWindow. После исчезновения модального окна с экрана, родительское окно enable'ится с помощью той же функции.

если ты пишешь на С++ и используешь классы, можно включить дополнительный цикл сообщений внутрь процедуры, выводящей модальное окно. тогда завершение выполнения этой процедуры будет происходить только после закрытия модального окна, т.е. вызов будет синхронным.
Ответ отправил: Bob Johnson (статус: Академик)
Россия, Калуга
WWW: Программирование
----
Ответ отправлен: 10.10.2006, 19:42
Оценка за ответ: 5

Отвечает: Sergey A. Wedensky
Здравствуйте, Bcd!

Через CreateWindowEx его создать нельзя. Единственное, чем отличается CreateWindowEx от CreateWindow - это возможность задания расширенных стилей.

Соглашусь с мр. Bob Johnson - чтобы окно было модальным, можно заблокировать остальные окна процесса или на время его жизни организовать "местную" очередь сообщений.

Но чем Вам не нравится диалоговое окно?
Если невозможностью изменения размеров, то это не так, с помощью опять же стилей можно добиться. А в остальном - все то же самое, та же оконная процедура, и т.д.
Ответ отправил: Sergey A. Wedensky (статус: 4-ый класс)
Ответ отправлен: 10.10.2006, 19:52
Оценка за ответ: 5

Отвечает: ENS
Здравствуйте, Bcd!
Модальное окно нельзы создать функцией CreateWindiwEx. Надо выключить остальныек окна EnableWindow.
BOOL EnableWindow( HWND hWnd,
BOOL bEnable
);

---------
Если нет выхода ищу вход.
Ответ отправил: ENS (статус: 6-ой класс)
Ответ отправлен: 11.10.2006, 14:14
Оценка за ответ: 5
Комментарий оценки:
Спасибо всем, понял.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное