mfc中,消息名与对应的响应函数的名称,对应关系是谁定的呢?
比如选择一个  WM_CREATE 这个消息,就会生成一个名为 OnCreate()的一个响应函数,
我不明白,消息名与函数名的对应关系谁决定的,是mfc定死的吗?
在源代码中有这种对应关系的体现吗?
如果代码中没有,这种对应关系体现在哪里呢?

解决方案 »

  1.   

    在你的代码里面有,On_Message_Map里面定义了对应关系............
      

  2.   

    恩,这个是MFC的消息映射机制已经定好了的
    MFC有一个消息映射表,接收到一个消息后,会到表中去查找对应的处理函数。具体你可以去看MFC消息映射机制,那可是MFC的一个很幽深的地方
      

  3.   

    你自定义消息的时候不是由你指定的吗
    只不过有些是VC给你定义好了的东西,就像WM_CREATE之类的
      

  4.   

    我的问题是,
    比如一个函数:OnCreate(),操作系统怎么会知道去处理 WM_CREATE 事件呢?
    这里一定会有一个对应关系,这个对应关系mfc已经设定好了,但是我不知这个对应关系在哪里可以看到。
      

  5.   

    搜下1楼说的ON_MESSAGE 宏会发现更多啊,呵呵,我又看了一下,其实《深入浅出MFC》这本书里讲的挺详细的,我要回去再看看了,挺好玩的
      

  6.   


    BEGIN_MESSAGE_MAP(CTestView, CView)
    //{{AFX_MSG_MAP(CTestView)
    ON_WM_CREATE()
    ON_WM_LBUTTONDBLCLK()
    ON_WM_DESTROY()
    //}}AFX_MSG_MAP
    // Standard printing commands
    ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
    ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
    ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
    END_MESSAGE_MAP() ON_WM_CREATE()
    ON_WM_LBUTTONDBLCLK()
    ON_WM_DESTROY()
    以上三行是增加响应函数后增加的,我知道这是三个宏,但是我不知这三个宏是如何起作用的,如果可以建立消息名与响应函数名之间的对应关系呢?
      

  7.   


    mfc里消息分为三种:标准消息,命令消息,控件消息
    WM_CREATE()
    WM_LBUTTONDBLCLK()
    WM_DESTROY()
    这都是标准消息,对应的是oncreate()这些默认的函数,这是MFC定好的。不太记得了。