从书上看到的,网上看到的,再结合我那可怜的杂七杂八的知识
我大概知道夹杂的猜想的认为
TranslateMessage(&msg)之后由DispatchMessage(&msg)在执行到一定程度的时候调用WndProc函数
又因为WndProc函数的声明是CALLBACK,大概DispatchMessage在中途会陷入内核状态(系统调用)?以上可能有点出入,不过我主要是想知道 DispatchMessage(&msg)函数在调用了WndProc函数之后还干了些什么呢?
因为看到网上关于一些消息处理以及MSDN上的例子,比如WM_CTLCOLOREDIT,WM_GETDLGCODE等消息和DefWindowProc
都特意指出了他们的返回值(我一直认为都是返回0呢)...那么显然是DispatchMessage函数要用到这个返回值,那么他到底用来干什么呢?
谁能告诉我啊?谢谢

解决方案 »

  1.   

    用来分派消息的,
    在WINDOW中,消息是链机制的
      

  2.   

    将消息回传给系统,由系统回调WndProc()
      

  3.   

    这个我知道啊
    我说了啊 我是想知道,DispatchMessage在调用完WndProc后还做了些什么啊
      

  4.   

    参见:http://blog.csdn.net/caimouse/archive/2010/01/02/5120173.aspx
      

  5.   

    不做什么了,等着WndProc返回,然后处理下一个消息
      

  6.   

    你的几个误解:
    1。CALLBACK不代表要进入内核!!
    2. 消息处理函数是给发送消息的函数用的,而不是DispatchMessage用的
    个人认为DispatchMessage的任务主要就是发给消息处理函数,没什么其他任务
      

  7.   

    2. 消息处理函数是给发送消息的函数用的,而不是DispatchMessage用的 
    =================
    这个误解也有可能来自于论坛,好多帖子在解释WndProc都有这样的说法:“可以将WndProc看作由DispatchMessage进行调用”,前几天还看到过,初学者不理解什么叫“可以看作”,当作是真的,造成误解。