MFC学习笔记之对话框调用

来源:互联网 发布:实体店结算软件 编辑:程序博客网 时间:2024/05/21 20:21

MFC学习笔记之对话框调用


这是我的第一篇博客,语言组织的不太好,以后继续努力!!!

自己是一名本科生,为了做创新训练项目接触的VC++,MFC。做项目过程中遇到了各种问题,而且许多细节再次用到的时候会忘记,在这里做一个笔记,一是供遇到相同问题的小伙伴参考,二则是为了自己日后回忆。


分类

  • 模态对话框
  • 非模态对话框

    模态对话框:调用此对话框的同时不能够进行其他的操作,只有关闭此对话框之后才能进行操作,而非模态对话框调用时能够与此同时调用其他的对话框或者进行其他的操作。
    接下来,我通过分析项目代码的方式来解析两种对话框的调用,这样更容易理解一些。
    项目初步框架的构建需要用到这个知识,由于一个大的项目是由各个模块或是各个层来组成的,为了使结构更加清晰,是项目能够分开独立同步进行。需要用到对话框的调用。
    这里写图片描述
    其中版本信息按钮是调用模态对话框,视频采集,图像合成,相机标定,流量估计按钮是调用非模态对话框。


模态对话框

void CMFCfirstnewDlg::OnBnClickedButton5(){    // TODO:  在此添加控件通知处理程序代码    CAboutDlg about_dlg;    about_dlg.DoModal();//模态窗口的调用}

这段代码中,CMFCfirstnewDlg这是项目的总体框架的一个类,CAboutDlg是项目版本信息的一个类,这两个类是在创建MFC时自动创建好的。
OnBnClickedButton5这是在总体框架中的一个按钮,目的是通过按钮的方式调用about对话框,通过程序中的那两实现。


非模态对话框

class CMFCfirstnewDlg : public CDialogEx{// 构造public:    CMFCfirstnewDlg(CWnd* pParent = NULL);  // 标准构造函数    Capturedlg *capture_dlg;//为了创建各个模块的窗口创建的变量    Calibrationdlg *calibration_dlg;//相机标定窗口    Trafficesdlg *traffices_dlg;//流量估计窗口    ImageMixdlg *image_dlg;//纹理分析窗口 void CMFCfirstnewDlg::OnBnClickedButton1(){    // TODO:  在此添加控件通知处理程序代码    if (NULL == capture_dlg)    {        capture_dlg = new Capturedlg();        capture_dlg->Create(CAPTUREDLG, this);    }    capture_dlg->ShowWindow(SW_SHOW);}

这段代码中用到的四个非模态对话框需要自己来创建他们各自的类,Capturedlg,Calibrationdlg,Trafficesdlg,ImageMixdlg这四个类是自己创建的,OnBnClickedButton1这个按钮中所涉及的代码用来实现调用。


0 0
原创粉丝点击