|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.09.2011, 20:21 | #1 |
Форумчанин
Регистрация: 04.10.2007
Сообщений: 106
|
К вопросу о сворачиваемости
Либо потому что умные, либо по другой причине ..., но многие и я в свою очередь хочу сделать что-то аля "виджеты в 7".
Поискал по форуму, почитал, вопрос несворачиваемости рассматривался на разных уровнях, в основном обработка сообщений и страшно-непонятные для меня хуки. Порывшись в DelphiWOrld объединил две статейки про обработку сообщений. Вот что получилось: Объявляем свой обработчик сообщения ( в DelphiKingdom нашел "Основы работы с Windows API. " там объяснение в том числе и о соглашении в объявлении процедуры), указываем тип перехватываемого сообщения Код:
Код:
Теперь основной вопрос - Что происходит при нажатии на "кнопку" панели задач "свернуть все окна". Эта кнопка запускает скрипт(?скрипт ли?) оболочки, Explorer-а Код:
Однако (естественно, иначе этого поста не было бы) мое окно благополучно сворачивается. Для исследования этого вопроса в DelphiWorld нашел исходник программы ловящей сообщения системы, скомпилил, внес коррективы (лог сохранять) и вот фрагмент лога после нажатия "свернуть все окна": Код:
Итого: обработчик события рабочий, сообщения типа "wm_ShowWindow" рассылаются, но окно сворачивается. Значит где-то я в объяснении событий допускаю ошибку, или чего-то не вижу. Есть еще один вариант учитывая команду скрипта : Код:
Этот вариант косвенно подтверждается парами сообщений (хотя сообщения вроде односторонняя вещь?) : Код:
Код:
Кто может прокомментировать данную ситуацию и варианты решения (optional:).
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем |
07.09.2011, 20:55 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Хуками куда проще... и надёжнее...
далее: Код:
|
07.09.2011, 21:26 | #3 | |
Форумчанин
Регистрация: 04.10.2007
Сообщений: 106
|
Цитата:
А как обяснить набор других сообщений (см.выше)? В теме "Несворачевоемое неактивное окно" есть другой способ решения, я его только что отработал. Но вопрос "что происходит" остался.
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем |
|