首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建MFC控件的子类的正确方法是什么?

创建MFC控件的子类的正确方法是什么?
EN

Stack Overflow用户
提问于 2010-02-12 18:05:23
回答 3查看 6.4K关注 0票数 4

我们使用资源编辑器来布局对话框。假设我有一个名为IDC_RICH的RichEditCtrl。我想把它链接到一个自定义类CMyRichEditCtrl : CRichEditCtrl的实例上,而不会失去在资源编辑器中设置它的属性的能力。

正确的方法是什么?您当然可以通过创建一个与DDX链接的变量并将类型更改为CMyRichEditCtrl来获得一些功能。但在某些情况下,我看到人们像这样调用代码:

代码语言:javascript
运行
复制
m_Rich.SubclassDlgItem(IDC_RICH, this));

有什么关系呢?

EDIT:我看到的一个问题是,当我覆盖Create(Ex)方法时,它们不会被调用。这有点像当我的对象链接到资源标识符时,控件已经创建好了,是不是?

EN

Stack Overflow用户

发布于 2017-01-04 15:29:35

对于您放在资源编辑器对话框中的控件,使用DDX_Control:

代码语言:javascript
运行
复制
class CMyDlg : public CDialogEx
{

protected:
    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

public:
    CRichEditCtrl m_Rich;
};

void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_RICHEDIT1, m_Rich);
}

手动创建的控件的2>:

CRichEditCtrl m_Rich; m_Rich.Create(...); m_Rich.SubclassDlgItem(IDC_RICH, this));

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2250970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档