荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Second (石开), 信区: Program
标  题: 5.7 使用通用对话框
发信站: 荔园晨风BBS站 (Wed May 30 07:00:03 2001), 转信

5.7 使用通用对话框

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

CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原
型如下:
CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, L
PCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITE
PROMPT, 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.tx
t
CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt
CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名
如:test1
POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个
文件位置。
CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情
况得到下一个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDi
alog::GetStartPosition( )来得到最初的POSITION变量。
CColorDialog颜色选择对话框的使用:首先通过CColorDialog::CColorDialog( COLORR
EF clrInit = 0, DWORD dwFlags = 0, CWnd* pParentWnd = NULL )构造一个对象,其
中clrInit为初始颜色。通过调用DoModal()创建对话框,在返回后调用COLORREF CColo
rDialog::GetColor( )得到用户选择的颜色值。

CFontDialog字体选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原
型如下:

CFontDialog::CFontDialog( LPLOGFONT lplfInitial = NULL, DWORD dwFlags = CF_E
FFECTS | 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( )

得到所选字体的其他属性,是否有删除线,是否有下划线,是否为粗体,是否为斜体。


--
                            既然热爱生命
                            那么,
                            一切都在意料之中。

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.190]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店