父窗口被刷新时怎样去刷新它的子窗口?(100分)

  • 主题发起人 主题发起人 aganippe
  • 开始时间 开始时间
A

aganippe

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi的消息发送中,如果我刷新一个父窗口(此时父窗口要接受到WM_PAINT消息),这个父窗口的所有要显示的子窗口也要接受到WM_PAINT消息,子窗口接受到的WM_PAINT是怎样收到的(如果子窗口是由TWinControl继承下来的)?我在源代码中看到如果子窗口不是TWinControl继承的话,是通过父窗口对WM_PAINT消息处理时调用PaintControls对子窗口进行刷新,但对于子窗口是由TWinControl继承的就找不到处理代码了(各位不要认为TWinControl是由TControl继承的,就也是同样处理,这种子类是同TControl其他的其它子类分别对待的)。
 
如果你说的父窗口/子窗口是指MDI结构的话,那么这样:
设form1 为你的父窗口,form2 ,form3 ,for4,..为你的子窗口
form1=tform1
..
procedure WMPaint(var Message: TWMPaint); message WM_PAINT; //
end;
....
procedure form1.WMPaint(var Message: TWMPaint);
var
I: Integer;
begin
inhreited;
for I := MDIChildCount-1 downto 0 do
MDIChildren.paint;
end;
 
后退
顶部