STATIC 背景,字型,字型顏色,字型背景變更

2021-08-15 23:50:24 字數 2122 閱讀 8615

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屬性;另外,如果要設不同的顏色,則分別在**中修改。

以上操作步驟在實際應用中測試過,效果非常好!

改變eclipse字型 背景顏色

配色方案詳細following annotations 注釋 107,147,186 deprecated members 不建議使用的成員 0,0,0 fields 字段 128,0,128 keyword return 關鍵字 return 255,0,0 keyword excluding r...

MarkDown設定字型顏色和背景顏色

目錄 markdown語法例項 toc 生成目錄 大標題一級標題 無序列表 有序列表 巢狀列表 8 文字超鏈inline方式 超鏈索引超鏈reference方式 自動鏈結 行內 段落 注釋轉義字元 其他 星號與下劃線都可以,單是斜體,双是粗體,符號可跨行,符號可加空格 乙個人來到田納西 毫無疑問 我...

markdown改變字型顏色及背景顏色

color 效果 其他方法 color 或 color 效果 但是字型大小比主題的小 如圖,完成 小 這裡講乙個不完善的解決方法 typora支援這兩個標籤還有乙個標籤,像都不支援,就這兩個標籤也不支援樣式的修改,自己只能再在基本css中定義。線面所示,原來就有,自己加的。注意後面多有字型加下劃線,...