关于VCL消息架构的困惑(100分)

  • 主题发起人 主题发起人 4502349
  • 开始时间 开始时间
4

4502349

Unregistered / Unconfirmed
GUEST, unregistred user!
看了李维的VCL架构,结合以前看的一些资料,有几点不明白,请大家指点

1、从TApplication 创建主窗口Form ,知道窗口里面的控件最终回调到TWinControl.WndProc. 而主窗口Form 是继承自类TWinControl,所以最终回调是到Form.Wndproc.
2、控件(如TButton)本身也有消息回调 WndProc,那它自己的回调是什么时候用?主要是响应什么消息?那跟1的form.WndProc不就冲突了吗?
3、如果我在窗体点TButton控件,为什么在父窗口form.WndProc中接收不到WM_COMMAND消息。
 
看<<Delphi高手突破>>和<<Delphi精要>>,两书综合在一起看就是你的问题的答案!
 
任何一个拥有句柄(Handle)的控件(应该是继承自TWinControl的),都有消息处理的
能力。Form做为容器,可以处理消息,同时,其内部的控件也能处理消息,这并不冲突。
阅读Delphi控件源代码的时候,我们会看到大量带有message的方法——这些都是用于响应
特定消息的过程。
 
在WndProc中收到的消息类型与Application.OnMessage类型在数量上是不同的
具体我没有仔细研究过
大至是 实际触发的消息数>Application.OnMessage数量>WndProc数量
 
后退
顶部