我在一个帖子中看到如下描述:1.标准消息 
除WM_COMMAND之外,所有以WM_开头的消息。 从CWnd派生的类,都可以接收到这类消息。 
2.命令消息 
来自菜单、加速键或工具栏按钮的消息。这类消息都以WM_COMMAND呈现。在MFC中,通过菜单项的标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam参数识别。 CCmdTarget派生的类,都可以接收到这类消息。 
3.通告消息 
由控件产生的消息,例如,按钮的单击,列表框的选择等均产生此类消息,为的是向其父窗口(通常是对话框)通知事件的发生。这类消息也是以WM_COMMAND形式呈现。 从CCmdTarget派生的类,都可以接收到这类消息。我想WM_CREATE消息应该是第一类。我在一个程序中看到对这个消息的处理好象仅仅在Message Map 中加了一行ON_WM_CREATE(),而没有显式地将消息类型与相应的处理函数联系起来。但是对于第二种消息好象做了连接,列如对于菜单“打开”项写了一个宏:ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen),这样就显式地把消息类型与处理函数联系了起来。我想问的东西就是:对于第一种类型,是不是写一行类似与ON_WM_CREATE()就行了,不需要显式的定义什么?

解决方案 »

  1.   

    ON_WM_CREATE() 宏展开就知道,已经帮你填好了OnCreate()消息函数
      

  2.   

    是的,你可以在ON_WM_CREATE() 上点右键,然后Go to definition ON_WM_CREATE,转到ON_WM_CREATE的定义处,看看它是怎么写的
      

  3.   

    一些东西是MFC自动帮你实现了的,要自己实现再重载。
      

  4.   

    还是要有函数体的,不然只写这一句有什么用呢?
       使用ClassWaird你就什么都不用问了,只要在函数体中做你想要的就好了
      

  5.   

    《深入浅出 MFC》有空看看。。