Форум: "WinAPI";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизКак заблокировать DC? Найти похожие ветки
← →
}{enon © (2004-02-13 18:35) [0]Вопрос такой: требуется запретить окну обновляться, не мешая ему реагировать на сообщения. Т.е. нужно, чтобы при нажатии кнопки мыши на TButton в чужом приложении, выполнялась назначенная процедура, но сама кнопка не рисовалась нажатой. Как это можно сделать? Дело в том, что WH_CALLWNDPROC не может изменять сообщения, а WH_GETMESSAGE по-видимому, просто не вызывается.
← →
}{enon © (2004-02-13 19:02) [1]Мда, похоже, WH_GETMESSAGE все-таки реагирует на WM_PAINT. Но как отменить это сообщение?
If not ((m.message = WM_PAINT) and (тип_окна = "TButton")) then CallNextHook...
почему-то не работает - окно все-равно обновляется.
← →
Игорь Шевченко © (2004-02-13 20:30) [2]
> требуется запретить окну обновляться
LockWindowUpdate ?
← →
DVM © (2004-02-13 20:59) [3]
> Мда, похоже, WH_GETMESSAGE все-таки реагирует на WM_PAINT
WM_PAINT не ставится в очередь и не считывается оттуда, а передается сразу оконной функции, потому хук не помогает ИМХО.
← →
Suntechnic © (2004-02-14 07:03) [4]DVM © (13.02.04 20:59) [3]
WM_PAINT не ставится в очередь и не считывается оттуда, а передается сразу оконной функции, потому хук не помогает ИМХО.
Не совсем так. WM_PAINT
посылается прямо оконной ф-ции только после вызововUpdateWindow
илиRedrawWindow
. Во всех остальных случаях через очередь, если она пуста конечно.
← →
}{enon © (2004-02-14 12:54) [5]2 Игорь Шевченко © (13.02.04 20:30) [2]
К сожалению, не совсем подходит. Заблокировать можно только одно окно, а при разблокировке Windows перерисовывает весь экран, что приводит к сильному мерцанию.
← →
}{enon © (2004-02-14 14:19) [6]Все, разобрался! Всем большое спасибо!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.032 c