如何实现根据具体条件自动生成对话框,对话框上的chengkbox控件由程序来控制,而不是事先画好的。

解决方案 »

  1.   

    可以生成一个空的对话框模板(上面什么都不要,甚至可以去掉OK和CANCEL按钮),然后在程序的OnInitDialog里写生成控件的代码。动态生成很简单,比如,生成一个按钮可以用如下代码:
        CButton *pBtn1 = new CButton;
        pBtn1.Create(......);
        ......
    OK?
      

  2.   

    就是支态创建.Create,包括控件,对话框
      

  3.   

    //resource.h
    #define IDC_EDIT1  2000//Test6Dlg.h
    CEdit *m_pEdit1;//Test6Dlg.cpp
    CTest6Dlg::CTest6Dlg(CWnd* pParent /*=NULL*/)
    : CDialog(CTest6Dlg::IDD, pParent)
    {
    //{{AFX_DATA_INIT(CTest6Dlg)
    // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_pEdit1 = NULL;
    }CTest6Dlg::~CTest6Dlg()
    {
            if (m_pEdit1 != NULL)
    {
                   delete m_pEdit1;
           m_pEdit1 = NULL;
            }
    }CTest6Dlg::OnButton1()
    {
         m_pEdit1 = new CEdit;
    ASSERT_VALID( m_pEdit1 ); m_pEdit1->Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | 
     ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_CENTER, 
     CRect(0, 0, 55, 20), this, IDC_EDIT1);
    }