VS2010&MFC对话框编程(4)——通用对话框

本文详细介绍了在VS2010下使用MFC进行通用对话框编程,包括文件打开和保存对话框、颜色对话框、字体对话框的实现。通过示例代码展示了如何创建和定制这些对话框,例如CFileDialog构造函数的应用,以及CColorDialog和CFontDialog的使用方法。
摘要由CSDN通过智能技术生成

1 简要

    MFC提供公用对话框类包括以下几种:

    CColorDialog类:                     用于选择颜色对话框

    CFileDialog类:                        ........实现打开和保存文件对话框

    CFindReplaceDialog类:       ........查找和替换文本

    CFontDialog类:                      .........选择字体对话框

    COleDialog类:                        .........该类及其派生类用于生成OLE应用程序对话框

    CpageSetupDialog类:          ..........OLE Page Setup(指定页面设置和打印边界)

    CPrintDialog类:                      ..........打印和打印设置对话框


2 文件打开对话框

    简要

    首先在堆栈上构建一个CFileDialog类的对象,然后调用CFileDialog::DoModal()函数创建并显示对话框

    CFileDialog构造函数

    CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );

    参数意义如下:

    bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。 

    lpszDefExt 指定默认的文件扩展名。 

    lpszFileName 指定默认的文件名。 
    dwFlags 指明一些特定风格。 
    lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如: "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。 

    pParentWnd 为父窗口指针。 

    <例子>

    创建新工程Dialog,在菜单资源添加为“打开文件对话框”的菜单,ID为ID_FILEIO_DLG_OPEN,再添加菜单命令的的“打开文件对话框”的COMMAND命令消息处理函数,为OnFileioDlgOpen,代码如下:

   
void CDialogView::OnFileioDlgOpen()
{
	// TODO: 在此添加命令处理程序代码
	CFileDialog fileDlg(TRUE);//定义CFileDialog类对象,设第一个参数为TRUE,表示创建打开文件对话框
	fileDlg.m_ofn.lpstrFilter=LPCTSTR(_T("Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0"));
	//定义打开对话框的标题“打开文件”
	fileDlg.m_ofn.lpstrTitle=LPCTSTR(_T("打开文件"));
	char szchar[20];
	memset(szchar,0,20);
	if(fileDlg.DoModal() == IDOK)
	{
		CFile file(fileDlg.m_ofn.lpstrFile,CFile::modeRead);
		file.Read(szchar,20);
		file.Close();
		MessageBox(LPCTSTR(szchar));
	}
}
    效果如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值