MFC控制項篇之通用對話方塊

2021-04-13 05:59:49 字數 2569 閱讀 9349

使用通用對話方塊

在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( )

得到所選字型的其他屬性,是否有刪除線,是否有下劃線,是否為粗體,是否為斜體。

API通用對話方塊

include include include include include 7 5.h openfilename ofn 定義乙個openfilename結構 hinstance hinst lresult callback wndproc hwnd,uint,wparam,lparam int...

使用通用對話方塊

5.7 使用通用對話方塊 在windows系統中提供了一些通用對話方塊如 檔案選擇對話方塊 如圖,顏色選擇對話方塊 如圖,字型選擇對話方塊 如圖。在mfc中使用cfiledialog,ccolordialog,cfontdialog來表示。一般來講你不需要派生新的類,因為基類已經提供了常用的功能。而...

通用對話方塊QMessageBox

pyqt5中為我們提供了很多預設資訊框qmessagebox,注意為方便使用需要匯入模組。qmessagebox對話方塊包含型別只是圖示不同其他無太大差別 from pyqt5 import qtwidgets from pyqt5.qtwidgets import qmessagebox clas...