窗口函数是用来处理消息用的。<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> case msg.Message of<br> PWM_USERDEFINE : begin<br> DoUserDefine(...);<br> end;<br> end;<br>end;<br><br>在控件 Destory 不要忘了用<br>DeallocateHWnd(m_Hwnd);<br>释放句柄<br>