Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Как заблокировать 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 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.053 c
11-1063290916
Igit
2003-09-11 18:35
2004.04.18
Не собирается в .dpr


3-1080025357
Лысый
2004-03-23 10:02
2004.04.18
Разработка ИС


3-1080028834
DmitryNekl
2004-03-23 11:00
2004.04.18
Как эмулировать связь между таблицами "master-detail"


1-1080545461
nv-vetal
2004-03-29 11:31
2004.04.18
ShowMessage. Как в появившемся окне нажать кнопку Ок программно?


7-1077017287
Kremen
2004-02-17 14:28
2004.04.18
МАС-адрес