gpt4 book ai didi

MFC> 将对话框连接到对话框类

转载 作者:行者123 更新时间:2023-12-04 05:44:53 25 4
gpt4 key购买 nike

我在现有资源文件中定义了一个新对话框及其控件。我还创建了一个新文件,它将处理从此对话框生成的事件。但我不确定如何将这两者联系起来。

是声明enum { IDD=IDD_NEW_DIALOG };连接两者所需的一切?还是我们应该添加一些其他声明?

最佳答案

这通常在 MFC 中完成的方式是在资源编辑器中定义一个对话框模板(就像您所做的那样),然后在 C++ 中从 CDialog 派生一个类并将其与对话框模板相关联(听起来您已经完成了- 这并不完全清楚)。

实际上将两者联系起来的是 CDialog 代码的构造函数。如果您查看 MFC 类向导自动生成的对话框相关代码,您将在构造函数实现中看到如下内容:

CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/) : CDialog(CMyDlg::IDD, pParent)

其中 CMyDlg::IDD 定义为具有新对话框模板标识符值的枚举。正是这一点使这一切发生,而不是枚举的声明。您可以将其修改为
CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/) : CDialog(IDD_NEW_DIALOG, pParent)

它仍然可以工作(假设 IDD_NEW_DIALOG 是资源中对话框的模板 ID),因为所发生的只是对话框 ID 被传递到构造函数中。

一般而言,始终值得记住的是,尽管最初出现,MFC 并没有通过编译器魔法绑定(bind)到 Windows - 这一切都是通过 C++ 和一些宏完成的。

编辑:DIALOGEX 和 DIALOG 声明 Windows 理解的略有不同的对话框资源格式:前者比后者更新。然而,至少从 Windows 95 开始,两者就已经存在,所以这并不是一个非常重要的区别。

关于MFC> 将对话框连接到对话框类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/348807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com