VS 2008,MFC:添加OnInitDialog - 怎么样?

时间:2009-06-07 10:07:00

标签: visual-studio-2008 ide mfc

这是我第一次远离VC6的MFC应用程序,我觉得有点愚蠢:

如何添加OnInitDialog处理程序? (我知道如何手动添加它,但从长远来看这很痛苦。)

双击对话框 - 没有。 右键单击对话框 - 禁用“添加事件处理程序”。 属性 - 消息具有“正常”消息,但不具有WM_INITDIALOG 属性 - 事件仅保存来自包含控件的通知 右键单击类视图 - “添加..”只有函数和变量

划伤头

[edit] d'oh - 它是MFC中的虚函数,但仍然......

3 个答案:

答案 0 :(得分:33)

不要感到愚蠢,当我第一次从VC6搬到VS2008时,我花了很长时间才想到这一点!

无论如何,也是为了我自己的参考,这里是添加对话框和覆盖OnInitDialog方法的完整步骤:

  1. 选择资源视图并展开.rc文件。
  2. 右键单击树状视图中的对话框条目,然后选择插入对话框
  3. 选择属性窗口。 (注意:如果您没有看到此窗口,请选择查看> 其他Windows > 属性窗口菜单项。)
  4. 属性窗口中,设置对话框的ID,例如IDD_MYDIALOG
  5. 右键单击资源编辑器中的对话框,然后选择添加班级。注意:如果安装了IE8,则可能会产生Internet Explorer脚本错误。有关如何纠正此问题的详细信息,请参阅this blog post
  6. MFC类向导对话框中,输入类名,例如CMyDialog,选择CDialog作为基类,然后按完成。这将创建名为MyDialog.cppMyDialog.h的文件,并将它们添加到您的项目中。
  7. 覆盖OnInitDialog类中的CMyDialog方法:

    1. 打开文件MyDialog.h
    2. 选择属性窗口。
    3. 将光标放在显示class CMyDialog : public CDialog的行上。 (“属性”窗口的顶部应显示“ CMyDialog VCCodeClass” - 这很重要,因为属性窗口具有高度上下文相关性,您可以根据位置获得不同的选项光标在编辑器中。)
    4. 点击属性窗口中的覆盖图标。
    5. 向下滚动属性窗口以查找OnInitDialog
    6. 点击此条目的向下箭头,然后选择< Add> OnInitDialog中即可。这应该创建您的CMyDialog::OnInitDialog功能。
    7. 我希望这有帮助!

答案 1 :(得分:4)

看起来你甚至不必打开头文件并乱放光标......创建类之后,在ClassView窗格中选择类,你可以在属性窗格中更改覆盖/消息/事件如上所述。

答案 2 :(得分:1)

打开“类向导”,然后转到“虚拟功能”选项卡。 双击要覆盖的功能