2013-06-13 59 views
0

我有兩個類。 類DialogBase繼承自CDialog 類DialogDerived繼承自DialogBase。在運行時從MFC派生類中添加控件

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

我想在對話框(CDialogBase)當它通過派生類中調用動態添加一個複選框。可能嗎?如果是,如何?

回答

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; 
} 

使用類似的類(CEditCStaticCButton,...)的代碼來創建的其他類型的控制同樣的方式。

相關問題