`
isiqi
  • 浏览: 16487319 次
  • 性别: 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( )
得到所选字体的其他属性,是否有删除线,是否有下划线,是否为粗体,是否为斜体。
分享到:
评论

相关推荐

    通用对话框

    在VC++编程环境中,通用对话框(Common Dialog Box)是一...通过熟练掌握通用对话框的创建和使用,初学者可以更好地理解和应用MFC(Microsoft Foundation Classes)框架,进一步提升其在Windows应用程序开发中的能力。

    VC通用对话框的实现

    在Microsoft Visual C++ (VC++) 开发环境中,通用对话框(Common Dialog Box)是一种预定义的用户界面元素,用于提供标准的与用户交互的方式,如打开文件、保存文件、颜色选择、字体选择等常见操作。本教程将详细...

    通用对话框作为你的窗口

    在Windows编程领域,通用对话框(Common Dialog Box)是一种预定义的用户界面组件,用于实现常见任务,如打开文件、保存文件、打印等。在VC++(Visual C++)环境中,我们可以利用MFC(Microsoft Foundation Classes...

    通用美化MFC对话框钩子技术.rar

    MFC库基于面向对象的设计,为开发者提供了丰富的控件、对话框、文档视图架构等功能。在MFC中,对话框是用户与程序交互的重要组件,而对话框的美化则能提升用户体验,使应用看起来更专业、更具吸引力。 通用美化MFC...

    控件大小可变的对话框程序(MFC),可根据需要修改

    本篇文章将详细探讨如何在MFC中实现控件大小随对话框窗口大小变化的功能。 首先,我们需要了解对话框的基本结构。在MFC中,对话框通常由`CDialog`类派生而来,它负责管理对话框的生命周期、消息处理和用户交互。...

    罗宾500例--第3章 通用对话框.rar

    通用对话框是Windows API提供的一组预先定义的对话框模板,开发者可以调用相应的API函数或使用MFC(Microsoft Foundation Classes)类库来显示这些对话框。常见的通用对话框包括OpenFile对话框、SaveAs对话框、Print...

    MFC基于对话框下的OpenGL

    2. **添加OpenGL支持**:在资源视图中,右键点击对话框资源,选择“插入”,然后在弹出菜单中选择“通用控件”。在这里,你会看到“OpenGL控件”(WCGLCTRL),将其拖放到对话框上。 3. **设置OpenGL上下文**:在...

    VS2008 MFC新控件使用

    VS2008 MFC中包含了若干改进的通用对话框,如打开文件对话框(CFileDialog),颜色选择对话框(CColorDialog),字体选择对话框(CFontDialog)等。这些对话框已经进行了更新,提供了更好的用户体验和更多的自定义选项。 ...

    mfc对话框及控件使用

    在本教程中,我们将探讨“mfc对话框及控件使用”,这涉及到创建对话框应用程序、自定义对话框类以及如何使用和定制Windows标准控件。 1. **创建对话框应用程序** - MFC应用程序向导:首先,我们通常会使用Visual ...

    贺兰_通用对话框 Ver 1.0.2

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

    MFC 对话框里面编辑HTML

    MFC并没有直接提供这样的控件,但我们可以通过使用通用控件库中的WebBrowser控件(`CLSID_WebBrowser`)来实现。这个控件基于Internet Explorer的ActiveX技术,可以显示HTML内容并支持一些基本的交互功能。 1. **...

    MFC窗口放大缩小控件跟着变化

    但通过上述解释,你应该能理解如何实现MFC窗口的放大缩小,以及如何使控件随之变化。这只是一个基础的介绍,实际的项目可能会涉及更多的细节和优化,如动画效果、性能考虑以及不同类型的控件处理。

    MFC对话框界面美化

    默认情况下,MFC对话框中的控件如按钮都是矩形形状,但通过自定义控件或者扩展标准控件,我们可以实现更个性化的外观,比如本例中的圆形按钮。 要实现圆形按钮,首先需要理解MFC中的CButton类,它是MFC对Windows ...

    MFC 窗口中控件随窗口放大相应改变大小

    在MFC中,对话框是显示一系列控件和用户交互的窗口。默认情况下,对话框的大小是固定的,但可以通过设置对话框的属性来改变这一行为。当你将对话框的Border属性设置为Resizing时,对话框将允许用户通过鼠标拖动来...

    自制简易基于对话框的mfc五子棋

    【标题】:“自制简易基于对话框的MFC五子棋” 在编程领域,MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,它为Windows应用程序开发提供了丰富的功能和接口。MFC五子棋项目是利用MFC库创建的一个...

    mfc根据窗口大小自动调整所有控件大小

    在MFC(Microsoft Foundation Classes)框架中,设计用户界面时,有时我们需要实现窗口大小变化时,窗口内的控件能够自动调整大小以适应新的窗口尺寸。这个功能可以提供更好的用户体验,特别是当应用程序支持不同...

    模式对话框和通用控件示例程序

    在编程领域,模式对话框(Modal Dialog Box)和通用控件(Generic Controls)是Windows应用程序设计中的重要概念,尤其在使用Visual C++这样的开发环境中。本示例程序"模式对话框和通用控件示例程序"旨在帮助开发者...

    MFC编程课件,对话框多文档编程

    3. **通用对话框**:预定义的对话框,如打开/保存文件对话框,颜色选择对话框等,它们提供了标准的用户界面,方便开发者快速集成。 通过以上步骤和知识,开发者可以构建具有丰富交互功能的MFC应用程序,对话框和多...

Global site tag (gtag.js) - Google Analytics