當程式中需要用到畫圖的時候,就要選擇畫筆的顏色,在mfc中提供了乙個ccolordialog的類,通過此類可以很方便的建立這樣乙個顏色對話方塊。其建構函式如下:
1ccolordialog(
colorref
clrinit = 0,
dword
dwflags = 0, cwnd* pparentwnd = null );
該建構函式含有三個引數,其中
clrinit:指定預設的顏色選擇,預設是黑色。
dwflags:指定一組標記,用來定製顏色對話方塊的功能和它的外觀。
pparentwnd:指向顏色對話方塊父視窗,後者擁有者視窗的指標。
我們可以使用dialog的domodal()函式建立顏色對話方塊。在ccolordialog型別中含有乙個choosecolor的結構體型別的成員變數:m_cc,在choosecolor結構體中含有乙個rgbresult的成員變數,此變數即儲存了使用者所選擇的顏色的,看看choosecolor結構體:
1
2
3
4
5
6
7
8
9
10
11
typedef
struct
choosecolor, *lpchoosecolor;
我們可以使用以下:
12
ccolordialog dlg;
dlg.domodal();
//建立顏色對話方塊
如果想要設定顏色對話方塊的初始選擇的顏色,則需要設定該對話方塊的cc_rgbinit標記,此標記在ccolordialog中的choosecolor型別的成員變數m_cc中可更改。
注意:擋在建立ccolordialog物件dlg的時候,他的資料成員m_cc中的flags成員已經具有了一些初始的預設標記。當我們將cc_rgbinit標記直接賦給m_cc.flags時,會產生錯誤!所以應該使用以下方式:
1
dlg.m_cc.flags |= cc_rgbinit;
//使用位或操作符
與mfc中提供了ccolordialog相同,mfc中也提供了cfontdialog類,利用該類可以建立選擇字型的對話方塊。此類的建構函式如下:
1cfontdialog( lplogfont lplfinitial = null,
dword
dwflags = cf_effects | cf_screenfonts, cdc* pdcprinter = null, cwnd* pparentwnd = null );
該函式含有四個引數:
lplfinitial:指向logfont結構體的指標,允許使用者設定一些字型的特徵。
dwflagspdcprinter:指向列印裝置上下文的指標。
pparentwnd:指向字型對話方塊父視窗的指標。
由cfontdialog的建構函式知道,引數都含有預設值,所以可以在構造字型對話方塊時候不指定任何引數。同樣可以試用以下:
1
2
cfontdialog dlg;
dlg.domodal();
//建立字型對話方塊
cfontdialog類中,含有乙個choosefont結構體型別的資料成員:m_cf;choosefont結構體的定義如下:
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
typedef
struct
choosefont, *lpchoosefont;
在結構體中,其成員lplogfont是指向邏輯字型的(logfont型別)的指標。logfont結構體如下:
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
typedef
struct
taglogfont logfont, *plogfont;
其中lffacename中存放的就是字型的名字,至於字型物件的建立,首先可以利用cfont類創造乙個字型物件,然後利用cfont類的createfontindirect成員函式根據指定特徵的邏輯字型(logfont型別)來初始化這個字型物件,該函式宣告如下:
1bool
createfontindirect(
const
logfont* lplogfont );
此函式的功能就是利用引數lplogfont指向的logfont結構體中的特徵來初始化cfont物件
記錄下自己的所學,雖然淺薄!!!如果我是乙隻蝸牛,那就只能慢慢向上爬!
MFC學習筆記之對話方塊呼叫
這是我的第一篇部落格,語言組織的不太好,以後繼續努力!自己是一名本科生,為了做創新訓練專案接觸的vc mfc。做專案過程中遇到了各種問題,而且許多細節再次用到的時候會忘記,在這裡做乙個筆記,一是供遇到相同問題的小夥伴參考,二則是為了自己日後回憶。void cmfcfirstnewdlg onbncl...
MFC之對話方塊
對話方塊可以分為模式對話方塊和非模式對話方塊兩種。模式對話方塊是指使用者只能在當前的窗體中進行操作,在該窗體沒有關閉之前不能切換到其他的窗體。非模式對話方塊是指當前的所操作的窗體可以切換。一般情況下,用於確認資訊的操作和一般的操作的對話方塊屬於模式對話方塊。如開啟檔案對話方塊就是典型的模式對話方塊,...
Qt之標準對話方塊 顏色對話方塊
1 在標頭檔案中包含 include qcolordialog void widget on colorbutton clicked 這裡使用了qcolordialog的靜態函式getcolor 來獲取顏色,它的三個引數的作用分別是 設定初始顏色 指定父視窗和設定對話方塊標題。getcolor 函式...