zoukankan      html  css  js  c++  java
  • MFC学习之模态对话框和非模态对话框


    1,打开VS2012,新建项目,选择MFC应用程序,然后选择基于对话框类型,这时候会产生CAboutDlg,CxxxxApp和CxxxxDlg(xxxx是你的项目名)

    2,然后在资源视图中Dialog可以看到IDD_ABOUTBOX和IDD_xxxxDialog ,选中IDD_xxxxDialog按Ctrl+A键可以选中该对话框中的所有东西,然后按Delete键可以全部删掉

    3,选中IDD_xxxxDIalog单击右键,点击属性,可以再外观一栏中看到caption,可以借此修改你的对话框的名称。

    4,打开工具栏,选中并拖动BUTTON到该对话框中,这时候我们拖动两个,即BUTTON1和BUTTON2放到此对话框中。BUTTON修改名字可以和对话框修改名字的方式相同,也可以直接在对话框中选中BUTTON(不要双击),然后输入你想要修改的名字,我们这里名字选择“模态对话框”和“非模态对话框”

    5,在资源视图中选中Dialog单击右键,选择插入Dialog,这时候在Dialog下面会生成一个IDD_Dialog1的对话框,这个IDD_Dialog1就是对话框的ID,选中IDD_Dialog1单击右键,选择属性即可更改名称,这里改为IDD_MODELDlg,再双击击IDD_MODELDlg对话框,这时会弹出一个添加类向导的框(或者直接在项目中找到添加类的选项),填入类名,我们这里写入CModelDlg,这时候查看类视图,就会发现多了一个CModelDlg类;同理插入IDD_UNMODELDlg。

    6,然后我们在资源视图中找到Dialog,找到IDD_xxxxDIalog,双击"模态对话框",就会跳转到xxxxDlg.cpp中添加代码的地方:我们添加以下两行代码,记住如果这时候只添加这两行代码的话会报错,我们还需要在.cpp文件添加:#include“ModelDlg”(类名以C开头的,再添加头文件时要去掉C)

    void CMFCApplication2Dlg::OnBnClickedButton1()
    {
    // TODO: 在此添加控件通知处理程序代码
    CModelDlg dlg;
    dlg.DoModal();
    }

    7,此时我们可以调试一下啦,在运行弹出的对话框中点击“模态对话框”,就会弹出一个模态的对话框了。

    8,在创建非模态对话框时稍有区别:

    void CdialogboxDlg::OnBnClickedButton2()
    {
    // TODO: 在此添加控件通知处理程序代码
    //CDlgUnmodel unmodeldlg;
    //创建
    //unmodeldlg.Create(IDD_UNMODEL);//创建窗口只能创建一次,多次就会崩掉。把它放到OnInitDialog里面初始化
    //显示
    //没有阻塞功能,一闪而过
    unmodeldlg.ShowWindow(SW_SHOWNORMAL);
    //在dlg.h文件中添加成员函数
    //private :
    //CDlgUnmodel unmodeldlg
    //添加头文件#inculde"DlgUNmodel.h"
    }

    9,OK,到此为止,我们已经创建好了模态和非模态对话框

    如有不对之处,请多多读指教
  • 相关阅读:
    linux整理
    C++ 11 多线程--线程管理
    VS2013 配置全局 VC++目录
    visual studio运行时库MT、MTd、MD、MDd的研究
    C++(vs)多线程调试 (转)
    VS工程和Qt工程转换
    Qt 读写XML文件
    win32开发中多字节(ANSI)和宽字符(UNICODE)字符串处理函数参考
    QMenu----QT鼠标右键弹出菜单
    C++ 单例模式析构函数的运用,析构函数的线程安全
  • 原文地址:https://www.cnblogs.com/sunflowers-lanqijiu/p/11809583.html
Copyright © 2011-2022 走看看