动态对话框类

动态对话框类 这些类被用来显示一个模态对话框/上一次,上 动态添加控件,不需要有一个对话框 模板资源。这些类作为基类使用 在脚本解析器,用户可以建立自己的对话框,使用 vb脚本语言。所以基本上可以有任意数量的控制 对话框,在对话框上的任何地方。 全球CDynDialogEx类的结构: CDialog类派生 班上有一个CDynDialogItemEx数组 指针,控件的对话框 类包括DoDataExchange()函数。 将控件添加到对话框中通过AddDlgControl()函数 全球CDynDialogItemEx类的结构: CWnd类派生 保存的数据添加到对话框控制,像 标题、矩形等。 创建对话框上的控件 小块示例代码如何使用classesHide,收缩,复制Code

void CTestDynDialogDlg::OnButton1();
{
    int nRadio1 = 0;
    //Create a rectangle in dialog units, where the control should be placed
    CRect rect(10,5,60,19);
    
    CDynDialogEx dlg(this);     //create the dynamic dialog, using this as parent window
    dlg.SetWindowTitle(_T("Dynamic Dialog : WindowTitle....."));

    //Add a button control at the given position
    dlg.AddDlgControl(_T("BUTTON"),    // Type of control OR classname of the control
            _T("Press me!"),    // Caption of control
            STYLE_BUTTON,    // dwStyle of control
            EXSTYLE_BUTTON,    // dwStyleEx of control
            &rect,    // Position of control on dialog in dialog units, default = NULL
            NULL,    // void pointer to variable use for DDX, default = NULL
            IDC_DYN_BUTTON);    // ID of the contol, default = zero

    //Add a group of radio buttons
    //variable nRadio1 is used for DDX
    dlg.AddDlgControl(_T("BUTTON"), _T("Radio1Caption 1"), 
                      STYLE_RADIO_GROUP, EXSTYLE_RADIO, NULL, (void*)&nRadio1);
    dlg.AddDlgControl(_T("BUTTON"), _T("Radio1Caption 2"), 
                      STYLE_RADIO, EXSTYLE_RADIO);

    //Now show me the dialog
    dlg.DoModal()
}

解释工作 CDynDialogEx: AddDlgControl()函数创建新的 CDynDialogItemEx类的对象,并将其添加到数组中 的控制。函数还检查/设置对话框的大小,所以 控制是在对话框。 CDynDialogEx: DoModal()函数初始化 DLGTEMPLATE结构使用选定的字体和调用 CDialog: InitModalIndirect()模态对话框或 CDialog: CreateIndirect比较对话框() CDynDialogEx: OnCreate()函数创建的所有 控制对话框 CDynDialogItemEx: CreateEx()没有(ActiveX控件) 或创建窗口 CDynDialogEx: OnInitDialog复位()函数 所有对话框上的控件或创建ActiveX控件 CDynDialogItemEx: SetWindowPos()函数转换 对话框屏幕单位单位并创建ActiveX控件 更新18-06-2002 来自CWnd类CDynDialogItemEx现在而不是拔CWnd成员 添加比较gialog CodeBuddy所认为的可能性。(CDynDialogEx:: SetUseModeless ()) 添加控件子类化,因为我需要他们。后添加控制可以使用 与调用返回的Control_ID SubclassDlgItem CDynDialogEx: AddSubclassedDlgControl () 改进的DDX_Control支持对话框条目 添加部分ActiveX控件的支持。部分,因为创建控件,但 不支持EVENT_SINK !但有代码用于创建授权控制构建。 添加示例非模态的对话框中,添加和填充CListbox, 一个ActiveX控件在对话框 提示! 将这段代码与保罗·梅西纳的文章CResizableDialog的代码 可能的扩展: 改善ActiveX控件支持,特别是EVENT_SINK相关 动态菜单添加到对话框 … 本文转载于:http://www.diyabc.com/frontweb/news6929.html

posted @ 2020-08-10 02:42  Dincat  阅读(168)  评论(0编辑  收藏  举报