关于窗口函数!(20分)

  • 主题发起人 主题发起人 飞扬跋扈
  • 开始时间 开始时间

飞扬跋扈

Unregistered / Unconfirmed
GUEST, unregistred user!
看了挺多的书了,很多书中都提到每个窗口都有个窗口函数(是个回凋函数)。<br>我想问是否可视的有句柄的控件(比如EDIT)都有个窗口函数??还是控件根本就没有窗口函数,只有FORM才有??
 
有句柄的(TWinControl)下继承的都有
 
窗口函数是用来处理消息用的。<br>可视的控件也可能没有窗口函数,如 Label Shape<br>而不可视的也可能有窗口函数。如 SPComm Time;<br>如果你写一个控件,你希望你的控件可以自己处理消息。<br>你可以在控件的成员函数里定义一个 WndProc 过程<br>procedure WndProc(var msg:TMessage);<br>再在控件的 Create 事件时加入<br>m_Hwnd := AllocateHWnd(WndProc);<br>这个 m_Hwnd 就是窗口的句柄了。<br>你就可用用 PostMessage /SendMessage 对这个窗口发消息了。<br>窗口处理过程为<br>procedrue WndProc(var msg:TMessage);<br>begin<br>&nbsp; case msg.Message of<br>&nbsp; &nbsp; PWM_USERDEFINE : begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DoUserDefine(...);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;<br>&nbsp; end;<br>end;<br><br>在控件 Destory 不要忘了用<br>DeallocateHWnd(m_Hwnd);<br>释放句柄<br>
 
谢谢两位!
 
后退
顶部