假如建立一个CWork工程,则会自动生成一个CWorkDlg类,程序的构造函数为:
CWorkDlg::CWorkDlg(CWnd* pParent )
: CDialog(CWorkDlg::IDD, pParent)
{
.
.
}
这个构造函数是在CWorkDlg类对象构造时调用的,这时CWorkDlg类的对象还没有构造完成,即使在构造函数中对象已经构造完成了,但这毕竟是类对象的构造,而非对话框的构造。
对话框的初始化函数为:
BOOL CWorkDlg::OnInitDialog()
{
.
.
}
OnInitDialog()函数是在对话框构造完成之后调用的,确切是说,它是Windows消息WM_INITDIALOG的响应函数。在对话框创建完毕,即将显示出来之前,Windows会向对话框过程发送WM_INITDIALOG消息,OnInitDiglog()函数就是响应这个消息的消息映射函数。
通过以上的描述,我认为:
一般的初始化在构造函数中进行,而对于与对话框有关联的变量在OnInitDialog()函数中初始化。