Visual Studio 2010 与 VC++ 6.0 在个别操作上是存在差异的。
用MFC向导创建的对话框会自动生成OnInitDialog()函数。但是手动添加的对话框或者创建子对话框时就不会生成OnInitDialog()。
Visual Studio 2010 与 VC++ 6.0 的操作差异在于:消息栏里也没有WM_INITDIALOG消息。
而OnInitDialog()函数可以在对话框出现之前对对话框进行初始化,有时候会很有用。因为有些代码不能放在类的构造函数里,只能放在OnInitDialog()函数里。因此需要OnInitDialog()函数。
此时,需要我们进行手动重载。
操作如下:
首先在“资源视图”中添加对话框资源,如下图所示:
新建并修改对话框的个别属性,如下所示:
其次,在对话框编辑器中右键单击该对话框,给该对话框添加一个映射类,打开添加类向导如下所示:
在“添加类向导”中设置映射类的类名,如下所示:
再次,在“类视图”中选中该对话框的映射类,如下所示:
右键点击,选择“属性”,在属性视图中切换到“重写”选项,如下所示:
最后生成的代码如下所示:
至此,问题解决!