当窗体发生消息时,为什么要windows来调用窗口函数(也即回调)?

解决方案 »

  1.   

    参见李维的<Inside VCL FrameWork> 第一章
      

  2.   

    1、当窗体发生了某些事件时(比如鼠标点击),操作系统将一些消息结构投到应用程序的消息队列中。
    2、应用程序不断地执行消息循环(GetMessage或PeekMessage)多消息队列中取出消息。
    3、接着调用DispatchMessage函数,传进从消息队列中取出的消息,而DispatchMessage函数的做法就是调用你在RegisterClass中传进的回调函数(亦即窗口过程)。
    4、窗口过程处理该消息。所以调用你的窗口过程的是DispathMessage函数,Windows在里面应该也要做许多其他的事件,比如:当你的鼠标点时,一个窗口控件收到WM_LButtonDown等消息,但是系统还要将一个WM_COMMAND消息发送给窗口控件所在的父窗口。
      

  3.   

    真诚的希望你可以去看“Windows消息系统”方面的书,这是很重要的编程知识!
      

  4.   

    怎么截获~窗口的创建。。????????
    任何取得刚创建的句柄[就是任务栏上新增1个‘button’]