我们使用资源编辑器来布局对话框。假设我有一个名为IDC_RICH的RichEditCtrl。我想把它链接到一个自定义类CMyRichEditCtrl : CRichEditCtrl
的实例上,而不会失去在资源编辑器中设置它的属性的能力。
正确的方法是什么?您当然可以通过创建一个与DDX链接的变量并将类型更改为CMyRichEditCtrl
来获得一些功能。但在某些情况下,我看到人们像这样调用代码:
m_Rich.SubclassDlgItem(IDC_RICH, this));
有什么关系呢?
EDIT:我看到的一个问题是,当我覆盖Create(Ex)方法时,它们不会被调用。这有点像当我的对象链接到资源标识符时,控件已经创建好了,是不是?
发布于 2017-01-04 15:29:35
对于您放在资源编辑器对话框中的控件,使用DDX_Control:
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));
https://stackoverflow.com/questions/2250970
复制相似问题