OnInitDialog()函数是个virtual(虚函数),在它的类中用添加虚函数的方法,会发现添加的虚函数里面没有这个函数,而这个OnInitDialog函数是很有用的,在一般的添加进去的对话框的类中是不会有这个函数的,必须手工增加进去,当然不用手工写代码,手动添加时可能会出错.可以通过VC加进去,而要加的这个函数的名字不是OnInitDialog,所以很难找到.其原因是因为要加的函数是WM_INITDIALOG.
这个函数的添加方法是这样的,选择要加入函数的对话框,右键->ClassWiZard(类向导)->Message Maps(消息映射),对象里面选择对话框,Messages(消息)里面选择WM_INITDIALOG,然后点Add Function(增加函数),这样就映射到类中去了,它的函数名称是OnInitDialog,而不是WM_INITDIALOG.这时可以点Edit Fuction,编辑函数了.
Visual studio 没有旧风格class wizard了。所以无法像VC6.0那样添加oninitdialog函数。
其方法是:首先添加CDialog对话框的类,方法是可以在对话框上点右键,在右键菜单里点Add Class,然后打开刚才添加的类的头文件,在头文件的类的声明区里按F4调出属性窗口,在属性窗口的工具栏里找到Overrides点击它会切换到重写方法列表界面,在这个列表里找到OnInitDialog,点后面的下拉组合框就有添加OnInitDialog了,点一下就可以把这个方法重写到你的程序里了。
还有两个要注意的问题是:
一个是:子对话框添加类后,打开此类的头文件,注意了:一定要确认鼠标光标处于类声明的区域 ,这个时候再打开属性窗口,点击工具栏上的Overrides(重写),里面可以找到OnInitDialog.
如果鼠标没处在类声明的区域,属性窗口就显示的是当前头文件的属性,工具栏是不会有Overrides(重写)这一项的。
另一个是:
ADD Class后 要在左边文件列表上面选择 show all files (显示所有文件)后 再打开添加的类的头文件 ....这样才行的 .......
就是你为子对话框添加完类后,在vs的左边文件列表上选择show all files。然后点击进去你添加的类的头文件。这时在(一般)右边的属性窗口里会有一个图标(Overrides)点击它文章引用:http://hi.baidu.com/wei83523408/blog/item/b9400d190ad5034f43a9ad57.html
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhxu0926/archive/2010/02/25/5327453.aspx