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

RusFAQ.ru: Win API


Информационный Канал Subscribe.Ru

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

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

Выпуск № 147
от 29.10.2005, 07:48

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


Вопрос № 28207: Добрый День ЭКСперты!!! Вот такая вот незадача...помогите. Как мне сделать так чтобы дочернее окно запрещало доступ к основному окну те к родительскому??? Например такая функция как MessageBox при вызове запрещает доступ к основному окну...

Вопрос № 28.207
Добрый День ЭКСперты!!!
Вот такая вот незадача...помогите.
Как мне сделать так чтобы дочернее окно запрещало доступ к основному окну те к родительскому???
Например такая функция как MessageBox при вызове запрещает доступ к основному окну пока не получит ответ от пользователя.
Как мне осуществить ето??? уже всё испробовал.
За ранее спасибо. Надеюсь все поняли.
Отправлен: 24.10.2005, 07:47
Вопрос задал: PRiSon (статус: 1-ый класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Jadd
Здравствуйте, PRiSon!
Вероятно имеется ввиду модальные диалоги. Есть функция CreateDialog, которая позволяет делать такие вещи. Но, по моему глубогому убеждению, писать их на чистом WINAPI - дело гиблое и ненужное. Есть MFC у мелкософта, есть VCL у борланда. Например, на WinAPI чатсь кода, вызывающая диалог, выглядит примерно так:
if (DialogBox(hinst, MAKEINTRESOURCE(DLG_DELETEITEM), hwnd, (DLGPROC)DeleteItemProc)==IDOK) .....дальше как тебе угодно. Учти, что в диалоге тоже придется описывать перехват сообщений. Посчитай накладные расходы и сделай выбор в пользу каркасных библиотек (т.е. MFC и/или VCL).

---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 24.10.2005, 09:13

Отвечает: VampSergey
Здравствуйте, PRiSon!
В случае MessageBox'a надо указать HANDLE материнского окна:
MessageBox(hWnd, "text", "caption", MB_OK);
Ответ отправил: VampSergey (статус: 1-ый класс)
Отправлен: 24.10.2005, 14:34

Отвечает: Лысков Игорь Витальевич
Здравствуйте, PRiSon!
Создавай второе не OVERLAPPED окно, а POPUP окно, например с такими стилями:
DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: 6-ой класс)
Отправлен: 24.10.2005, 17:18

Отвечает: Bob Johnson
Здравствуйте, PRiSon!
Есть такая функция EnableWindow (HWND, bEnable). вот вызывай ее с хэндлом родительского окна и она "запретит" к нему доступ. MessageBox же устроен примерно таким образом:
{
EnableWindow (hParent, false);
CreateWindow (hParent, ...);
Message_Loop;
EnableWindow (hParent, true);
}
Message Loop в середине нужен для того, чтобы функция не вернула управление назад до того, как окно будет закрыто.
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 24.10.2005, 21:18

Отвечает: estiGi
Здравствуйте, PRiSon!
Такая функция, как MessageBox - это на самом деле модальный диалог. Она не то чтобы запрещает доступ к родителю, она не дает закрыть программу, пока диалог не закрыт, навное так правильнее...
В классе CDialog есть функция DoModal - запуск модального диалога, или если на АПИ - DialogBox
Ответ отправил: estiGi (статус: 2-ой класс)
Отправлен: 26.10.2005, 00:07


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.winapifaq
Архив рассылки
Отписаться
Вспомнить пароль

В избранное