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

pet*_*hen 20 ide mfc visual-studio-2008

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

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

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

划痕头

[编辑] d'oh - 它是MFC中的虚拟功能,但仍然......

Chr*_*isN 35

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

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

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

要覆盖类中的OnInitDialog方法CMyDialog:

  1. 打开文件MyDialog.h.
  2. 选择" 属性"窗口.
  3. 将光标放在读取的行上class CMyDialog : public CDialog.("属性"窗口的顶部应显示" CMyDialog VCCodeClass" - 这很重要,因为" 属性"窗口对上下文非常敏感,并且根据编辑器中光标的位置,您可以获得不同的选项.)
  4. 单击" 属性"窗口中的" 替代"图标.
  5. 向下滚动属性窗口以查找OnInitDialog.
  6. 单击此条目的向下箭头,然后选择<添加> OnInitDialog.这应该创建你的CMyDialog::OnInitDialog功能.

我希望这有帮助!