?? teach_road_57.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="聞怡洋 wyy_cq@21cn.com">
<title>Visual C++/MFC開發指南</title>
<SCRIPT LANGUAGE='JavaScript' SRC='../../submit_navigate_bar.js'></SCRIPT>
<link REL="stylesheet" HREF="../../main.css">
</head>
<SCRIPT LANGUAGE='JavaScript'>write_body();</SCRIPT>
<SCRIPT LANGUAGE='JavaScript'>write_bar();</SCRIPT>
<p align="center"><a
HREF="http://www.0828.com/pay/cgi-bin/random.cgi?job=go&id=820"
target="_blank">
<img SRC="http://www.0828.com/pay/cgi-bin/random.cgi?id=820" BORDER="0"
width="468" height="60"></a><br>
<font size="2"><a href="http://www.0828.com/pay/index.html"><img border="0"
src="http://www.0828.com/pay/code.gif" width="468" height="15"></a><br>
<small>你每點一下上面的廣告我就能有更多的上網時間為大家尋找資料</small></font>
</p>
<table width=98% cellspacing="0" cellpadding="0" align=center><!--整體框架-->
<tr><td>
<table border=0 width="100%" cellspacing="0" cellpadding="2"><!--標記放置區域-->
<tr>
<td width="30%" align="center" bgcolor="#003D84" valign=middle><img src=../../img/brand_200_60.gif width=200 height=60 alt="LOGO1"></td>
<td width="70%" align="center" bgcolor="#003D84" valign=middle><img src=../../img/logo_400_60.gif width=400 height=60 alt="LOGO2"></td>
</tr>
<tr>
<td colspan="2" bgcolor="#0080C0" align=center><font color=white>您當前位置</font></font> <a href=../../index.htm><font color=white>首頁</font></a> <a href=../index.htm><font color=white>開發教程</font></a> <a href=index.htm><font color=white><font class=engul>Visual C++/MFC</font>入門教程</font></a> <font color=white>5.7 使用通用對話框</font><SCRIPT LANGUAGE='JavaScript'>write_command();</SCRIPT></td>
</tr>
</table><!--標記放置區域 END-->
<table border=0 width=100% cellspacing="0" cellpadding="0">
<tr>
<td><!--begin-->
<br>
<p align=center><big>5.7 使用通用對話框</big></p>
<table border=0 align=center width=100%>
<tr><td>
<small>
<p>在Windows系統中提供了一些通用對話框如:文件選擇對話框<a href=57_g1.gif target=_blank>如圖</a>,顏色選擇對話框<a href=57_g2.gif target=_blank>如圖</a>,字體選擇對話框<a href=57_g3.gif target=_blank>如圖</a>。在MFC中使用CFileDialog,CColorDialog,CFontDialog來表示。一般來講你不需要派生新的類,因為基類已經提供了常用的功能。而且在創建并等待對話框結束后你可以通過成員函數得到用戶在對話框中的選擇。
</p>
<p><b>CFileDialog文件選擇對話框的使用</b>:首先構造一個對象并提供相應的參數,構造函數原型如下:<br>
CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );參數意義如下:
<ul>
<li>bOpenFileDialog 為TRUE則顯示打開對話框,為FALSE則顯示保存對話文件對話框。</li>
<li>lpszDefExt 指定默認的文件擴展名。</li>
<li>lpszFileName 指定默認的文件名。</li>
<li>dwFlags 指明一些特定風格。</li>
<li>lpszFilter 是最重要的一個參數,它指明可供選擇的文件類型和相應的擴展名。參數格式如:
<br>"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件類型說明和擴展名間用 | 分隔,同種類型文件的擴展名間可以用 ; 分割,每種文件類型間用 | 分隔,末尾用 || 指明。</li>
<li>pParentWnd 為父窗口指針。</li>
</ul>
創建文件對話框可以使用DoModal(),在返回后可以利用下面的函數得到用戶選擇:
<ul>
<li>CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目錄名和擴展名如:c:\test\test1.txt</li>
<li>CString CFileDialog::GetFileName( ) 得到完整的文件名,包括擴展名如:test1.txt</li>
<li>CString CFileDialog::GetExtName( ) 得到完整的文件擴展名,如:txt</li>
<li>CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目錄名和擴展名如:test1</li>
<li>POSITION CFileDialog::GetStartPosition( ) 對于選擇了多個文件的情況得到第一個文件位置。</li>
<li>CString CFileDialog::GetNextPathName( POSITION& pos ) 對于選擇了多個文件的情況得到下一個文件位置,并同時返回當前文件名。但必須已經調用過POSITION CFileDialog::GetStartPosition( )來得到最初的POSITION變量。</li>
</ul>
</p>
<p><b>CColorDialog顏色選擇對話框的使用</b>:首先通過CColorDialog::CColorDialog( COLORREF clrInit = 0, DWORD dwFlags = 0, CWnd* pParentWnd = NULL )構造一個對象,其中clrInit為初始顏色。通過調用DoModal()創建對話框,在返回后調用COLORREF CColorDialog::GetColor( )得到用戶選擇的顏色值。
</p>
<p><b>CFontDialog字體選擇對話框的使用</b>:首先構造一個對象并提供相應的參數,構造函數原型如下:
<br>CFontDialog::CFontDialog( LPLOGFONT lplfInitial = NULL, DWORD dwFlags = CF_EFFECTS | CF_SCREENFONTS, CDC* pdcPrinter = NULL, CWnd* pParentWnd = NULL );構造一個對象,其中參數lplfInitial指向一個LOGFONG結構(該結構介紹請見<a href=teach_road_22.htm target=_blank>2.2 在窗口中輸出文字</a>),如果該參數設置為NULL表示不設置初始字體。pdcPrinter指向一個代表打印機設備環境的DC對象,若設置該參數則選擇的字體就為打印機所用。pParentWnd用于指定父窗口。通過調用DoModal()創建對話框,在返回后通過調用以下函數來得到用戶選擇:
<ul>
<li>void CFontDialog::GetCurrentFont( LPLOGFONT lplf );用來獲得所選字體的屬性。該函數有一個參數,該參數是指向LOGFONT結構的指針,函數將所選字體的各種屬性寫入這個LOGFONT結構中。</li>
<li>CString CFontDialog::GetFaceName( ) 得到所選字體名字。</li>
<li>int CFontDialog::GetSize( ) 得到所選字體的尺寸(以10個象素為單位)。</li>
<li>COLORREF CFontDialog::GetColor( ) 得到所選字體的顏色。</li>
<li>BOOL CFontDialog::IsStrikeOut( )<br>BOOL CFontDialog::IsUnderline( )<br>BOOL CFontDialog::IsBold( )<br>BOOL CFontDialog::IsItalic( )<br>得到所選字體的其他屬性,是否有刪除線,是否有下劃線,是否為粗體,是否為斜體。</li>
</ul>
</p>
</small>
</td>
</tr>
<tr><td>
<small>
<p align=center><a href=index.htm#charpter5>返回</a></p>
</small>
</td></tr>
</table>
<p align=center><small>版權所有 聞怡洋 <a href=http://www.vchelp.net/>http://www.vchelp.net/</a></small></p>
</td><!--end-->
</tr>
</table>
</td></tr></table><!--整體框架 END-->
<SCRIPT LANGUAGE='JavaScript'>write_tail();</SCRIPT>
</body></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -