如何更改static控制項的字型大小

2021-06-07 21:00:29 字數 2385 閱讀 8273

你用的如果vc是5.0,5.0要從光碟上拷幾個dll

如果是6.0,也許要設定一下。在"工作區"相應的對話寬點右鍵,屬性中有"語言"項,選擇"chinese(p.r.c)"就可以了。

更改字型,首先改變你的static控制項的id,然後getdlgitem(idc_yourstatic)->setfont(&font);

很多人定義了基於mfc的程式專案,當設計介面使用控制項時,卻不知道如何對各控制項進行字型與顏色的設計;其實這些修改是需要動手新增**的,這方面的修改在控制項屬性裡是沒有現成的,這不同於.net定義的專案,它的是有直接屬性修改的。

1、改變對話方塊的底色

在對話方塊的類中新增乙個 private : cbrush m_brush;的成員變數。在類的建構函式中新增如下**:

m_brush.createsolidbrush(rgb(0,0,255));

//初始化為藍色

為對話方塊新增乙個wm_ctlcolor訊息響應函式,專門為控制項著色的訊息響應函式,**如下:

hbrush csettingdlg::onctlcolor(cdc* pdc, cwnd* pwnd, uint nctlcolor)

當然,.h檔案裡也要對函式進行預定義的;此時,該對話方塊的背景色已經全為藍色了。

2、如果我們要設定某乙個對話方塊控制項的底色和文字顏色時只要將上面return m_brush;改為:

if (pwnd->getdlgctrlid()==idc_line_style)

return hbr;

注意如果要設定單行edit的文字背景色,需要使用setbkcolor設定,而setbkmode即使為透明,文字的背景仍為系統的預設色。按鈕控制項好像不能實現,大家可以試試,是不是按鈕真的不能實現這些顏色變化。

3、利用上面的原理,在對話方塊控制項響應onpaint訊息時,將乙個靜態文字顯示所設定字型的文字。新增乙個靜態文字框,改名為idc_text。新增乙個字型成員變數 private: cfont m_font;在對話方塊的建構函式中對字型進行初始化: m_font.createpointfont(200,"華文行楷");在2的return hbr;之前加入如下**:

if (pwnd->getdlgctrlid()==idc_text)

注意,因為onpaint訊息響應函式是在控制項被繪製之前觸發的,它所返回的hbrush畫刷控制代碼,便攜帶了我們所設定的這些屬性。此時,靜態文字框的字型就變為你所需要的那種字型了。

4、如果要改變ok按鈕的文字顏色,靠上面的方式是不行的。我們需要建立乙個新的從cbutton類繼承的ctestbtn類,並新增乙個類的drawitem的虛函式,類與虛函式都可以用嚮導來定義,加入以下**:

// todo: add your code to draw the specified item

uint ustyle = dfcs_buttonpush;

// this code only works with buttons.

assert(lpdrawitemstruct->ctltype == odt_button);

// if drawing selected, add the pushed style to drawframecontrol.

if (lpdrawitemstruct->itemstate & ods_selected)

ustyle |= dfcs_pushed;

// draw the button frame.

::drawframecontrol(lpdrawitemstruct->hdc, &lpdrawitemstruct->rcitem,dfc_button, ustyle);

// get the button's text.

cstring strtext;

getwindowtext(strtext);

// draw the button text using the text color red.

colorref croldcolor = ::settextcolor(lpdrawitemstruct->hdc, rgb(255,0,0));

::drawtext(lpdrawitemstruct->hdc, strtext, strtext.getlength(),&lpdrawitemstruct->rcitem, dt_singleline|dt_vcenter|dt_center);

::settextcolor(lpdrawitemstruct->hdc, croldcolor);

然後,右鍵選擇ok按鈕,用嚮導建立乙個關聯的成員變數m_btntest,從新建立的ctestbtn類繼承。在ok按鈕的屬性頁-〉styles-〉owner draw選中,否則ok按鈕仍然繼承預設的cbutton類。

需要上色的按鈕分別都要建關聯成員變數與設定owner draw屬性;另外,如果要設不同的顏色,則分別在**中修改。

如何更改static控制項的字型大小

你用的如果vc是5.0,5.0要從光碟上拷幾個dll 如果是6.0,也許要設定一下。在 工作區 相應的對話寬點右鍵,屬性中有 語言 項,選擇 chinese p.r.c 就可以了。更改字型,首先改變你的static控制項的id,然後getdlgitem idc yourstatic setfont ...

如何改變STATIC控制項的文字顏色

如何改變static控制項的文字顏色 通過處理 wm ctlcolorstatic 訊息,必需注意以下幾點 1 mfc沒有使用 wm ctlcolorstatic 訊息,而是使用 wm ctlcolor 訊息 2 必須返回乙個背景刷子,即使你不改變背景顏色 如果 static 的背景色要與父視窗背景...

如何改變STATIC控制項的文字顏色

通過處理 wm ctlcolorstatic 訊息,必需注意以下幾點 1 mfc沒有使用 wm ctlcolorstatic 訊息,而是使用 wm ctlcolor 訊息 2 必須返回乙個背景刷子,即使你不改變背景顏色 如果 static 的背景色要與父視窗背景色相同,可以用 getstockobj...