Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как заблокировать DC?


}{enon ©   (2004-02-13 18:35:00) 

Вопрос такой: требуется запретить окну обновляться, не мешая ему реагировать на сообщения. Т.е. нужно, чтобы при нажатии кнопки мыши на TButton в чужом приложении, выполнялась назначенная процедура, но сама кнопка не рисовалась нажатой. Как это можно сделать? Дело в том, что WH_CALLWNDPROC не может изменять сообщения, а WH_GETMESSAGE по-видимому, просто не вызывается.


}{enon   (2004-02-14 14:19:00) [1]

Все, разобрался! Всем большое спасибо!


}{enon   (2004-02-14 12:54:00) [2]

2 Игорь Шевченко ©   (13.02.04 20:30) [2]

К сожалению, не совсем подходит. Заблокировать можно только одно окно, а при разблокировке Windows перерисовывает весь экран, что приводит к сильному мерцанию.


Suntechnic   (2004-02-14 07:03:00) [3]

DVM ©   (13.02.04 20:59) [3]
WM_PAINT не ставится в очередь и не считывается оттуда, а передается сразу оконной функции, потому хук не помогает ИМХО.


Не совсем так. WM_ PAINTпосылается прямо оконной ф-ции только после вызовов UpdateWindowили RedrawWindow. Во всех остальных случаях через очередь, если она пуста конечно.


DVM   (2004-02-13 20:59:00) [4]


> Мда, похоже, WH_GETMESSAGE все-таки реагирует на WM_PAINT

WM_PAINT не ставится в очередь и не считывается оттуда, а передается сразу оконной функции, потому хук не помогает ИМХО.


Игорь Шевченко   (2004-02-13 20:30:00) [5]


> требуется запретить окну обновляться


LockWindowUpdate ?


}{enon   (2004-02-13 19:02:00) [6]

Мда, похоже, WH_GETMESSAGE все-таки реагирует на WM_PAINT. Но как отменить это сообщение?
If not ((m.message = WM_PAINT) and (тип_окна = 'TButton')) then CallNextHook...
почему-то не работает - окно все-равно обновляется.


Наверх

Титульная страница Поиск, карта сайта Написать письмо