Форум: "WinAPI";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];
ВнизПодскажите, кто знает? Найти похожие ветки
← →
boa (2003-01-27 07:46) [0]Какой Message посылается приложениям при нажатии на таскбаре кнопки "Свернуть все окна"?
← →
Anatoly Podgoretsky (2003-01-27 08:06) [1]WM_NINIMIZE по видимому
← →
boa (2003-01-27 08:36) [2]Если вы имеете ввиду WM_MINIMIZE, то такое сообщение даже отсутствует в документации, сообщение о минимизации отправляется через WM_SYSCOMMAND. Но я проверял, при нажатии на "свернуть все окна" WM_SYSCOMMAND не посылается приложению. Посылается сообщение - $C096. А что это за сообщение так и не могу найти.
← →
Игорь Шевченко (2003-01-27 09:43) [3]Внутреннее сообщение Shell"a. Вообще, команда "свернуть все окна" на самом деле устанавливает окно рабочего стола на передний план. Так, что окна не сворачиваются, а заслоняются
← →
boa (2003-01-27 10:58) [4]> Игорь Шевченко
Может конечно оно так и есть, однако если открыть системное меню приложения, после того как были свернуты все окна, то в нем пункт меню "Восстановить" является доступным. А это говорит о том, что приложение знает, что оно находится в минимизинованном состояния, и пусть окна физически заслоняются, а получается что приложение об этом уведомляется. В том то и вопрос - как?
← →
DVM (2003-01-27 11:01) [5]
> boa
> пункт меню "Восстановить" является доступным
не факт, что так и есть. Неоднократно сталкивался с тем, что системное меню отображает не реальное состояние окна, а вообще неизвестно какое.
← →
boa (2003-01-27 12:20) [6]> DVM
Может в каких то случаях ваше утверждение и имеет место, но в данном случае это стабильный и реальный факт. Кроме того могу утверждать (по крайней мере для WinXP), что при сворачивании всех окон - окна приложения получают сообщение WM_SHOWWINDOW c параметром HIDE, а не просто прячутся за окно рабочего стола.
Так, что состояние окна приложения и меню приложения очень даже соответствуют друг другу.
Ну дык может кто посоветует в каком направлении нужно копать, что бы поймать момент сворачивания всех окон.
← →
Игорь Шевченко (2003-01-27 12:21) [7]boa © (27.01.03 10:58)
Угу, знает. Но сообщения ему при этом можно и не посылать, достаточно установить стиль WM_MINIMIZE в окне, и строчка "Восстановить" появится в системном меню.
← →
boa (2003-01-27 12:39) [8]Я понял что мы друг друга не совсем понимаем.
Попробую пояснить всю проблемму:
Мне нужно знать когда приложение находится в минимизированном состоянии, а когда нет.
Дык вот единственный момент (если он конично единственный) это когда сворачиваются все окна, у меня выпадает из обработки, при чем мне нужно обработать это сообщение до того как скроется окно приложения.
Вот Так.
← →
Игорь Шевченко (2003-01-27 12:56) [9]Окну посылается сообщение WM_SIZE с wParam = SIZE_MINIMIZED
← →
boa (2003-01-27 13:07) [10]>Игорь Шевченко © (27.01.03 12:56)
Шас попробуем!
← →
Anatoly Podgoretsky (2003-01-27 13:26) [11]Игорь Шевченко © (27.01.03 09:43)
Точно и даже всплывающая подсказка называется Show Desktop, остальное на совести переводчика.
← →
boa (2003-01-27 14:05) [12]Да, WM_SIZE - это почти то, что нужно. Проблемка только в том что это сообшение приходит после того, когда форма уже скрыта.
Ну и на этом большое СПАСИБО!
Может чего и выкраю.
← →
KDenis (2003-01-27 19:45) [13]а компонент
ApplicationEvents
(впервые в Delphi5) получает все сообщения до того, как их получит окно, и сообщение это можно стереть (тоесть, сделать так, чтоб окно его не получило)...
← →
boa (2003-01-28 06:02) [14]>KDenis
Если вы имеете ввиду OnMessage то он получает далеко не все сообщения (насколько я знаю там обрабатываются сообщения переданные через PostMessage). А OnMinimize при сворачивании всех окон тоже не отробатывает.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c