模态对话框和非模态对话框

来源:互联网 发布:郑州七中分校知乎 编辑:程序博客网 时间:2024/04/24 17:58

MFC里,点击按钮,弹出对话框,其方法(IDE为VC 6.0):

Workspace里的视图选择资源视图,然后右击Dialog文件夹,选择Insert,在Resource type里选择Dialog,然后点击New来建立一个新的对话框资源,然后右击该新的对话框,选择属性,更改新对话框的命令ID和Caption以及其他东西,然后双击该对话框或打开ClassWizard或右键选择ClassWizard,让ClassWizard检测到新的对话框的存在,并弹出Adding a Class对话框,(大多数情况下是选择建立新的对话框类),然后在New Class对话框里填入类名(C***Dlg如CInputTimeDlg)、基类选CDialog、Dialog ID选择正确后点击OK。

在需要使用这个类的代码(按钮点击方法所在的文件代码)中,先加头文件#include "CInputTimeDlg.h"

注意:
1#include "CInputTimeDlg.h"中的"CInputTimeDlg.h"中不要有空格(如"[空格]CInputTimeDlg.h"或"CInputTimeDlg.h[空格]"),否则会No such file or directory
2如下:
// DlgDlg.cpp : implementation file
//
//#include "CInputTimeDlg.h"//错误。
//不要将头文件放到第一个的地方,要放到最后,否则报错。
#include "stdafx.h"
#include "Dlg.h"
#include "DlgDlg.h"
#include "CInputTimeDlg.h"//这样才正确
//若再遇到类似的“不知道放哪里”的情况,可以遵循“依次往后排”的原则。
//比如:你要添加一个新的头文件,就放到头文件集中处的最后面(依此往后排)

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
之后在按钮点击方法中
void CDlgDlg::OnButtoninputtime() 
{//模态对话框
// TODO: Add your control notification handler code here
CInputTimeDlg dlg;//新对话框类对象
dlg.DoModal();//弹出新建对话框
}
void CDlgDlg::OnButtoninputtime() 
{//非模态对话框
// TODO: Add your control notification handler code here
CInputTimeDlg * pDlg=new CInputTimeDlg;
pDlg->Create(IDD_DIALOGINPUTTIME,this);
pDlg->ShowWindow(SW_SHOW);
}
0 0
原创粉丝点击