65.9K
CodeProject 正在变化。 阅读更多。
Home

子对话框(子窗体)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.58/5 (9投票s)

1999年11月18日

viewsIcon

148507

downloadIcon

3756

一个用于处理对话框或属性表中的子对话框的简单类。

ChildDlg1.gif

ChildDlg1.gif

引言

一个用于处理对话框或属性表中的子对话框的简单类。这些子对话框可以动态地更改,就像子窗体一样。实际上,这很简单,但我厌倦了每次都重新编程所有内容 :-(

步骤 1. 设计一个或多个“子对话框”。确保将样式设置为 Child(子窗口)并勾选“Control”(控件)属性。

步骤 2. 设计一个父对话框。为了方便起见,我添加一个静态控件以便更容易地定位子对话框(通常我使用组框)。

步骤 3. 为所有对话框生成它们的类。

步骤 4. 将文件 SubFormCollection.cppSubFormCollection.h 添加到您的项目中。

步骤 5. 在父对话框中创建一个 CSubFormCollection 类的对象。

 //
    CSubFormCollection m_SubForms;
 //

步骤 6. 在父类的 OnInitDialog() 方法中,添加以下代码

 //
    CRect r;
    // get the position for the subforms
    (GetDlgItem(IDC_SUBFORM_FRAME))->GetWindowRect(&r);
    // if the positioning is absolute use this, else the next line
    //    m_SubForms.SetRelPos(r);
    // centers the subdialog within the static IDC_SUBFORM_FRAME
    m_SubForms.SetCenterPos(r);
    m_SubForms.CreateSubForm(IDD_SUBFORM1,this); // create the sub forms
    m_SubForms.CreateSubForm(IDD_SUBFORM2,this);
    m_SubForms.CreateSubForm(IDD_SUBFORM3,this);
    m_SubForms.CreateSubForm(IDD_SUBFORM4,this);
    m_SubForms.ShowSubForm(); // show the first one
 //

步骤 7. 要在子对话框之间切换,请使用以下代码

 //
    m_SubForms.ShowSubForm(index_of_subform);
 //

现在开始繁重的工作了...

© . All rights reserved.