Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запретить сворачивание формы

9.9K
12 марта 2006 года
chetverg
14 / / 09.09.2005
Подскажите кто знает: можно ли как-то запретить сворачивания окна прилождения при нажатии Win+D. Спасибо
9.9K
12 марта 2006 года
chetverg
14 / / 09.09.2005
Для ясности: пытаюсь написать "плавающее окно" на подобии того как это сделано например в Download Master или FlashGet. Чтобы это окно не реагировало на сочитания Win+D или Win+M. Кто-нить подобным занимался?
294
12 марта 2006 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by chetverg
Подскажите кто знает: можно ли как-то запретить сворачивания окна прилождения при нажатии Win+D. Спасибо


Imho, надо обрабатывать сообщение WM_SYSCOMMAND, если wParam == SC_MINIMIZE, значит, нас пытаются свернуть, и надо ответить на эту провокацию решительным отказом. ;)

Цитата:
Originally posted by chetverg Для ясности: пытаюсь написать "плавающее окно" на подобии того как это сделано например в Download Master или FlashGet. Чтобы это окно не реагировало на сочитания Win+D или Win+M. Кто-нить подобным занимался?



Забавная у тебя манера -- отвечать самому себе вопросом на вопрос... ;)

9.9K
12 марта 2006 года
chetverg
14 / / 09.09.2005
[QUOTE]Originally posted by Plisteron
Imho, надо обрабатывать сообщение WM_SYSCOMMAND, если wParam == SC_MINIMIZE, значит, нас пытаются свернуть, и надо ответить на эту провокацию решительным отказом. ;)

Не получается. Таким способом у меня получается обрабатывать только когда нажимается непосредственно кнопка "_" на заголовке окна, а Win+D и Win+M так и продолжает срабатывать.
294
13 марта 2006 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by chetverg
[QUOTE]Originally posted by Plisteron
Imho, надо обрабатывать сообщение WM_SYSCOMMAND, если wParam == SC_MINIMIZE, значит, нас пытаются свернуть, и надо ответить на эту провокацию решительным отказом. ;)

Не получается. Таким способом у меня получается обрабатывать только когда нажимается непосредственно кнопка "_" на заголовке окна, а Win+D и Win+M так и продолжает срабатывать.


Тогда бери мелкомягкий Spy++ и смотри, какие сообщения получает окно, когда юзер давит MustDie+M. У меня получилось следующее:
WM_SHOWWINDOW wParam = 0, lParam = 1
WM_SHOWWINDOW wParam = 0, lParam = 0
WM_WINDOWPOSCHANGING wParam = 0 lParam = { hwnd = hwnd, hwndInsertAfter = Null, x = 0, y = 0, cx = 0, cy = 0, flags = SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_HIDEWINDOW}
WM_WINDOWPOSCHANGED wParam = 0, lParam = {hwnd = hwnd, hwndInsertAfter = Null, x = 197, y = 117, cx = 150, cy = 500, flags = SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_HIDEWINDOW | 1800}
Ну и ещё несколько сообщений.

9.9K
13 марта 2006 года
chetverg
14 / / 09.09.2005
Хорошо, допустим я перехвачиваю сообщение
WM_SHOWWINDOW (может и другие понадобятся пока не знаю):
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_SHOWWINDOW, TMessage, my_obr)
END_MESSAGE_MAP(TForm)
Так как сделать чтобы это сообщение игнорировалось? Или оно и так заигнориться и выполниться только my_obr?
9.9K
13 марта 2006 года
chetverg
14 / / 09.09.2005
Ну Win+M уже не обрабатывается... Остался Win+D.
Если не трудно кинь такой же список сигналов на Win+D, а то у меня Spy++ чего-то не хочет фурычить(может ему VС нужен)...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог