最近在看李维的《深入核心VCL架构剖析》,书很不错,碰到一些问题,想了解明白。
一个应用程序可有多个窗口,执行环境为每个程序建立消息队列,再由消息队列分到窗口处理,消息是有窗口hwnd的,我想问的是执行环境如何判断消息是哪个应用程序的呢,从而把他们放到程序的消息队列中,这个我看得不是明白。给我的感觉就是应用程序注册窗体,创建窗体,窗体结构中有类名和回调函数,消息中有hwnd所以可以根据这个找到对应的回调函数处理,可是没有把他放到应用程序的消息队列中啊。大哥大姐救命啊~~想到头疼了~

解决方案 »

  1.   

    判斷此UI是屬于哪個線程的(應該是依據消息中的handle判斷),若此消息是隊列消息,則把它放到這個UI所在線程的消息隊列,否則把消息直接發送到此UI窗口過程。
      

  2.   

    消息添加到消息队列,然后根据窗口句柄hwnd分派消息,至于消息来源,不是定义了消息常量了么,根据特定的消息常量,编写不同的处理方法,没必要具体知道消息是在哪里发出的吧