为什么说,对话框创建完了以后会收到WM_INITDIALOG这样的消息,然后会回调OnInitDialog这个函数。
但是看起来这个OnInitDialog并没有通过消息映射得到执行啊。那么OnInitDialog到底是如何被触发的,有什么机制?

解决方案 »

  1.   

    virtual BOOL OnInitDialog();
    这是重载了基类的函数。我们不用关心WM_INITDIALOG消息是如何映射到成OnInitDialog函数。在afxwin.h文件里 定义// Overridables (special message map entries)
    virtual BOOL OnInitDialog();我们看代码只能看到这里了。
      

  2.   


    谢谢,但是我就是想知道:
    WM_INITDIALOG消息是如何映射到成OnInitDialog函数
      

  3.   

    CDialog已经把这个消息映射过了,并且定义了OnInitDialog虚函数处理,所以你要做的是重载OnInitDialog。父类没有映射过的消息,你才需要映射。