Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Чем модальное окно отличается от обычного?  (Прочитано 13030 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« : 16-03-2009 21:25 » 

Собственно всё написано в теме: чем модальное окно отличается от обычного?
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 17-03-2009 00:31 » 

А обычное это какое? Немодальное? Ну тогда оно тем и отличается, что оно НЕ модальное.

зы Собственно... каков вопрос, таков и ответ. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 17-03-2009 05:59 » 

Модальное окошко , если имеет родительское окно то

1) блокирует все сообщения к родителю от клавиатуры
2) блокирует все сообщения к родителю от мыши
3) всегда находится поверх родителя и всегда фокус родителя переводит на себя

ещё, вроде бы, блокирует сообщение к родителю WM_CLOSE , хотя я не проверял ) А щас лень
« Последнее редактирование: 17-03-2009 06:02 от Алексей1153++ » Записан

Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #3 : 18-03-2009 17:28 » 

Алексей1153++, большое спасибо.

Но тут еще один вопрос навязался:
Модальное окошко , если имеет родительское окно то
...
2) блокирует все сообщения к родителю от мыши
3) всегда находится поверх родителя и всегда фокус родителя переводит на себя
тоесть, нельзя даже кнопку нажать на родительском окне пока открыто модальное?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 18-03-2009 17:32 » new

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

Inkognito, да. В том и смысл модального окна: пока оно не будет закрыто, доступ к родительскому окну будет невозможен.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #5 : 18-03-2009 17:39 » 

Всё понял, спасибо.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 18-03-2009 17:54 » 

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


ммм, не встречал... Но, ставим свойство systemmodal в редакторе ресов - и оно всегда поверх ) (у MessageBox - MB_SYSTEMMODAL)

программно:
Код:
BOOL SetWindowPos(
   hWnd,
   HWND_TOPMOST,
   X,
   Y,
   cx,
   cy,
   SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER
);


« Последнее редактирование: 18-03-2009 17:56 от Алексей1153++ » Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 18-03-2009 17:58 » 

Алексей1153++, ну и кому нужны такие извраты? Есть такая вещь, как эргономика. Очень сомневаюсь, что всплывающее поверх всего и перехватывающее фокус окно, находящегося в свернутом состоянии приложения, будет оценено как правильное поведение с точки зрения эргономики. А потом пользователи матерят винду...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 18-03-2009 18:04 » 

не знаю, пока претензий не было Улыбаюсь Тем более, что свёрнутое окно выскочет вместе с модальным
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 18-03-2009 18:08 » 

Алексей1153++, нехорошо это. Это я тебе говорю как пользователь, который долго печатал сообщение в аську, а все мысли ушли в пустоту какого-нибудь ненужного всплывшего сообщения.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #10 : 18-03-2009 18:14 » 

Ром, поверх всех окон вовсе не означает перехват фокуса.

Конечно, всё зависит от важности окна - если это охранная программа, то оператора очень важно отвлечь от аси или пасьянса.

А что то неважное можно сделать так, чтобы перед выкидыванием приложение сохранило GetFocus, а потом вернуло его.

А можно этого не делать. А можно вообще окно не выкидывать Улыбаюсь Всё от задачи зависит
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 18-03-2009 18:22 » 

Леш, для индикации есть мигание кнопки в панели задач - внимание привлекает хорошо.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines