OnInitDialog <==> WM_INITDIALOG message ,(sdk ,you know?)
construction function also load this function ( virtual )

解决方案 »

  1.   

    构造函数是在窗口对象还没有创建之前,成员变量已经分配空间之后进行的.
    OnInitDialog是在窗口对象完创建之后发出.
      

  2.   

    OnInitDialog() 用于对对话框类的变量的初始化(注意:是在产生对话框之前就初始化);而构造函数是对该函数所在类的变量及其函数进行初始化;
      

  3.   

    比方说 在构造函数里或者OnInitDialog()你都可以 给 一般的成员变量幅值,
    如: 
    m_nXX = 0;
    m_bKK = FALSE;
    但是 
    m_pEdit = GetDlgItem(IDC_EDIT1);
    就只能在OnInitDialog()里面写, 因为他要窗口句柄..
    构造的时候还没有什么窗口呢..
      

  4.   

    当然有了!
    在OnInitDialog()中对话框的所有控件都已创建!
    比如一个COMBOBOX你的默放选中第一项!
    就可以在其中加入:MyComBoBox.SetCurSel(0);
      

  5.   

    构造和析构函数是C++的概念,他们实在实例创建和释放时第一个和最后一个执行的函数,一般用来初始化、释放一些成员变量。
    至于,OnInitDialog(),它是一个消息处理函数,MFC通过宏来屏蔽了SDK的实现。建议你先搞清楚对话框生命期里的各个虚函数和消息处理函数,以及他们的先后关系。