`
isiqi
  • 浏览: 16048418 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

MFC控件篇之通用对话框

阅读更多
使用通用对话框

在Windows系统中提供了一些通用对话框如:文件选择对话框,颜色选择对话框,字体选择对话框。在MFC中使用CFileDialog,CColorDialog,CFontDialog来表示。一般来讲你不需要派生新的类,因为基类已经提供了常用的功能。而且在创建并等待对话框结束后你可以通过成员函数得到用户在对话框中的选择。

CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:
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 为父窗口指针。
创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择:
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:\test\test1.txt
CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt
CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt
CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1
POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。
CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。

CColorDialog颜色选择对话框的使用:首先通过CColorDialog::CColorDialog( COLORREF clrInit = 0, DWORD dwFlags = 0, CWnd* pParentWnd = NULL )构造一个对象,其中clrInit为初始颜色。通过调用DoModal()创建对话框,在返回后调用COLORREF CColorDialog::GetColor( )得到用户选择的颜色值。

CFontDialog字体选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:
CFontDialog::CFontDialog( LPLOGFONT lplfInitial = NULL, DWORD dwFlags = CF_EFFECTS | CF_SCREENFONTS, CDC* pdcPrinter = NULL, CWnd* pParentWnd = NULL );构造一个对象,其中参数lplfInitial指向一个LOGFONG结构(该结构介绍请见2.2 在窗口中输出文字),如果该参数设置为NULL表示不设置初始字体。pdcPrinter指向一个代表打印机设备环境的DC对象,若设置该参数则选择的字体就为打印机所用。pParentWnd用于指定父窗口。通过调用DoModal()创建对话框,在返回后通过调用以下函数来得到用户选择:

void CFontDialog::GetCurrentFont( LPLOGFONT lplf );用来获得所选字体的属性。该函数有一个参数,该参数是指向LOGFONT结构的指针,函数将所选字体的各种属性写入这个LOGFONT结构中。
CString CFontDialog::GetFaceName( ) 得到所选字体名字。
int CFontDialog::GetSize( ) 得到所选字体的尺寸(以10个象素为单位)。
COLORREF CFontDialog::GetColor( ) 得到所选字体的颜色。
BOOL CFontDialog::IsStrikeOut( )
BOOL CFontDialog::IsUnderline( )
BOOL CFontDialog::IsBold( )
BOOL CFontDialog::IsItalic( )
得到所选字体的其他属性,是否有删除线,是否有下划线,是否为粗体,是否为斜体。
分享到:
评论

相关推荐

    贺兰_通用对话框 Ver 1.0.2

    ' 功 能:不使用控件,对Windows通用对话框进行自定义,核心包括一个封装的类和两个模块。 [更新历史] ◆ Ver 1.0.2 开发时间:2008-09-24 09:27 ~ 2008-09-24 12:04 ' 1、修正了没有设置预览或程序标志图片框时,...

    mfc对话框及控件使用

    创建一个对话框应用程序。 要有自定义的对话框类并加以使用。 要有对Windows标准控件和通用控件的使用,功能自定义。

    MFC程序开发参考大全 源码

     全书共分19章,包括MFC应用程序概述,C++面向对象程序开发,消息映射与命令处理,对话框程序设计,MFC通用控件,菜单,工具栏和状态栏设计,GDI绘图,文档,视图结构程序设计,MFC打印技术,文件与注册表操作,...

    SplitterCtrl:该控件对于将对话框,程序的主窗口或子窗口按几部分进行分区是必需的。 MFC控件,使用GDI绘图

    SplitterCtrl派生自CWnd ,是基于MFC的通用控件。通常, SplitterCtrl与CSplitterWnd相似,但使用起来更容易。例如,您可以创建一个复杂的矩阵。为此,需要将SplitterCtrl放在一个或几个单元格中,并且还要对部件...

    《精通MFC程序设计》,经典MFC编程学习教材

    《精通MFC程序设计》分9篇共30章,内容涵盖了Windows-VC-MFC、MFC框架及消息处理机制、MFC通用控件和对话框编程、文档-视结构、MFC数据库编程、MFC网络编程、注册表编程、进程线程和DLL、异常与调试以及.NET MFC应用...

    精通MFC程序设计 代码篇

    全书分9篇共30章,内容涵盖了Windows-VC-MFC、MFC框架及消息处理机制、MFC通用控件和对话框编程、文档-视结构、MFC数据库编程、MFC网络编程、注册表编程、进程线程和DLL、异常与调试以及.NET MFC应用等,其中的大...

    经典-精通MFC程序设计-高清文字版

    【作 者】姚领田编著 【出版发行】 北京市:人民邮电出版社 ...【内容提要】 本书分9篇共30章,内容涵盖了Windows-VC-MFC、MFC框架及消息处理机制、MFC通用控件和对话框编程、文档-视结构、MFC数据库编程等方面。

    Visual C++MFC编程实例

    2.3.1 通用控件类 23 2.3.2 菜单类 23 2.3.3 对话框类 24 2.3.4 控制条类 24 2.3.5 属性类 25 2.4 绘图类 25 2.4.1 设备环境类 25 2.4.2 图形对象类 25 2.5 文件类 26 2.6 数据库类 26 2.6.1 ODBC类 26 2.6.2 DAO类 ...

    VC++程序课程设计报告-学生信息管理系统文档.doc

    了解Windows通用对话框编程的使用方法 创建一个基于对话框的学生信息管理系统,可实现学生信息的录入、查询、删除。该工程分为登录对话框、录入对话框、查询对话框、删除对话框和主对话框五个。各对话框主要用模态...

    Visual C++MFC入门教程

    5.7 使用通用对话框 53 5.8 建立以对话框为基础的应用 54 5.9 使用对话框作为子窗口 55 第六章 网络通信开发 56 6.1 WinSock介绍 56 6.2 利用WinSock进行无连接的通信 59 6.3 利用WinSock进行有连接的通信 60

    精通MFC程序设计(16-30章)

    全书分9篇共30章,内容涵盖了Windows-VC-MFC、MFC框架及消息处理机制、MFC通用控件和对话框编程、文档-视结构、MFC数据库编程、MFC网络编程、注册表编程、进程线程和DLL、异常与调试以及.NET MFC应用等,其中的大...

    MFC程序员的WTL指南

    9.2.3、与 MFC 封装类的不同之处 130 9.3、资源装载(Resource-Loading)函数 130 9.4、使用通用对话框 133 9.4.1、CFileDialog类 134 9.4.2、CFolderDialog类 137 9.5、其它有用的类和全局函数 138 9.5.1、对结构的...

    精通MFC程序设计

    《精通MFC程序设计》分9篇共30章,内容涵盖了Windows-VC-MFC、MFC框架及消息处理机制、MFC通用控件和对话框编程、文档-视结构、MFC数据库编程、MFC网络编程、注册表编程、进程线程和DLL、异常与调试以及.NET MFC应用...

    用MFC开发Windows应用程序1

    1. 了解AppWizard自动生成的程序框架 2. 了解MFC类库设计面向对象应用程序的过程 3. 学习基本图形设计 4. 学习使用基本控件和通用对话框 5. 学习菜单设计 6. 学习画笔、画刷和字体的应用

    精通MFC程序设计.chm

    内容涵盖了 Windows-VC-MFC、MFC 框架及消息处理机制、MFC 通用控件和对话框编程、文档-视结构、 MFC数据库编程、MFC网络编程、注册表编程、进程线程和DLL、异常与调试以及.NET MFC应用等,其 中的大部分内容都配有...

    精通MFC程序设计 光盘 part2

    全书分9篇共30章,内容涵盖了Windows-VC-MFC、MFC框架及消息处理机制、MFC通用控件和对话框编程、文档-视结构、MFC数据库编程、MFC网络编程、注册表编程、进程线程和DLL、异常与调试以及.NET MFC应用等,其中的大...

    Visual C++/MFC学习笔记.doc

    NOTIFY的使用方法第五章 对话框5.1 使用资源编辑器编辑对话框5.2 创建有模式对话框5.3 创建无模式对话框5.4 在对话框中进行消息映射5.5 在对话框中进行数据交换和数据检查5.6 使用属性对话框5.7 使用通用对话框5.8 ...

    Windows编程循序渐进(清晰完整版)part2

    2.5 通用对话框 第3章 基本控件 …… 第4章 文档与视图 第5章 GDI绘图技术 第6章 键盘与鼠标消息 第二篇 软件设计综合应用篇 第7章 网络通信基础 第8章 密码学算法 第9章 多媒体技术 第10章 数据库技术 第11章 综合...

    Windows编程循序渐进(清晰完整版)part1

    2.5 通用对话框 第3章 基本控件 …… 第4章 文档与视图 第5章 GDI绘图技术 第6章 键盘与鼠标消息 第二篇 软件设计综合应用篇 第7章 网络通信基础 第8章 密码学算法 第9章 多媒体技术 第10章 数据库技术 第11章 综合...

    Windows编程循序渐进(清晰完整版)part3

    2.5 通用对话框 第3章 基本控件 …… 第4章 文档与视图 第5章 GDI绘图技术 第6章 键盘与鼠标消息 第二篇 软件设计综合应用篇 第7章 网络通信基础 第8章 密码学算法 第9章 多媒体技术 第10章 数据库技术 第11章 综合...

Global site tag (gtag.js) - Google Analytics