【问题标题】:VS 2008, MFC: add OnInitDialog - how?VS 2008,MFC:添加 OnInitDialog - 如何?
【发布时间】:2010-10-31 23:44:15
【问题描述】:

这是我第一个远离VC6的MFC应用,感觉有点傻:

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

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

抓头

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

【问题讨论】:

    标签: visual-studio-2008 ide mfc


    【解决方案1】:

    别觉得傻,当我第一次从 VC6 迁移到 VS2008 时,我花了很长时间才弄清楚这一点!

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

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

    要覆盖CMyDialog 类中的OnInitDialog 方法:

    1. 打开文件MyDialog.h
    2. 选择属性窗口。
    3. 将光标放在读取class CMyDialog : public CDialog 的行上。 (属性窗口的顶部应该显示“CMyDialog VCCodeClass” - 这很重要,因为 Properties 窗口对上下文非常敏感,并且您可以根据位置获得不同的选项编辑器中的光标。)
    4. 点击属性窗口中的Overrides图标。
    5. 向下滚动属性窗口以找到OnInitDialog
    6. 单击此条目的向下箭头并选择 OnInitDialog。这应该会创建您的 CMyDialog::OnInitDialog 函数。

    我希望这会有所帮助!

    【讨论】:

    • 只是想提一下,在我从 VC6 迁移到 VS2008 之后,这也让我困惑了很长时间。可能需要一点时间来适应。
    • 找到了! :-D 知道你并不孤单总是有帮助的。
    • 在第 5 步中,“添加类”被禁用。 !!
    【解决方案2】:

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

    【讨论】:

    • 因为不需要打开头文件并将光标定位在正确的代码行上以使属性窗格正确显示。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      • 2013-07-31
      • 2023-03-24
      • 2013-06-09
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      相关资源
      最近更新 更多