0

我有两节课。类 DialogBase 继承自 CDialog 类 DialogDerived 继承自 DialogBase。

BOOL DialodDervied::OnInitDialog()
{
     CDialogBase::OnInitDialog();
     //Add Dynamic Control to Main Dialog from here
}

当通过派生类调用对话框时,我想在对话框(CDialogBase)中动态添加一个复选框。是否可以?如果是,如何?

4

1 回答 1

2

声明一个成员变量CButton m_ctrl_chk,覆盖 DialodDervied::OnCreate() 并添加类似的代码

int DialodDervied::OnCreate(LPCREATESTRUCT lpCreateStruct)
{    if (CDialogEx::OnCreate(lpCreateStruct) == -1)
        return -1;

    m_ctrl_chk.Create(_T("Checkmate"), WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_AUTOCHECKBOX,
        CRect(5, 5, 100, 20), this, 1234); // the 1234 value is the ID of the control

    return 0;
}

使用类似的类 ( CEdit, CStatic, CButton, ...) 以相同的方式创建其他类型的控件。

于 2013-06-13T07:09:38.070 回答