OnInitDialog()和对话框的构造函数有什么区别啊?

时间:2022-09-28 19:26:56
我是个mfc新手,请问各路大虾OnInitDialog()和对话框的构造函数有什么区别,谢谢!

10 个解决方案

#1


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

#2


那么它们的作用有何区别呢?

#3


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

#4


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

#5


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

#6


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

#7


只要你搞清楚,构造函数是最先被创建的就是以了!

#8


连这都搞不清楚,放弃VC吧

#9


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

#10


哈哈,谢谢你给我分数..
其实还是他们讲的术语, 专业一些..

#1


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

#2


那么它们的作用有何区别呢?

#3


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

#4


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

#5


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

#6


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

#7


只要你搞清楚,构造函数是最先被创建的就是以了!

#8


连这都搞不清楚,放弃VC吧

#9


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

#10


哈哈,谢谢你给我分数..
其实还是他们讲的术语, 专业一些..