![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отловить событие WM_PAINT для компонента формы? [D7, XP]
Alex_C © (2006-10-11 13:41:00)Я так понимаю через WndProc :
procedure TForm1.WndProc(var Message: TMessage);
begin
if Message.Msg = WM_PAINT then ...
Однако как узнать что этот WM_PAIN относится именно к конкретному компонету, а не к форме?
han_malign (2006-10-11 14:20:00) [1]более того, даже Application.OnMessage - получит только те сообщения WM_PAINT которые были инициированы с помощью Windows.UpdateWindow(control.handle), Windows.RedrawWindow(control.handle) или Windows.Send/PostMessage(control.handle, WM_PAINT, ...) (PostMessage - из области полной экзотики - не факт что вообще сработает, да и SendMessage - вряд ли кто использует), т.к. по большей части WM_PAINT компонентов делает Parent прямым вызовом Perform ==> WindowProc...
han_malign (2006-10-11 14:03:00) [2]
> Однако как узнать что этот WM_PAIN относится именно к конкретному компонету, а не к форме?
- а никак - форма никогда не получит WM_PAIN компонента.
Все WM_ ( WindowMessage) - это целевые сообщения, предназначенные для конкретного окна...