MFC中修改靜態文字框中文字的字型 顏色

2021-08-02 21:39:26 字數 1252 閱讀 8957

一    設定字型

在oninitdialog()函式中新增**

方法1:

newfont.createpointfont(160,l"楷體");

m_static_xsdj.setfont(&newfont);

方法2:

cfont* font;

font=m_static_xsdj.getfont();//獲取cfont物件

logfont lf;

font->getlogfont(&lf);//獲取logfont結構體

lf.lfheight=-26; //修改字型大小

lf.lfitalic=true; //傾斜

lf.lfweight=400; //修改字型的粗細

newfont.createfontindirectw(&lf);//建立乙個新的字型

m_static_xsdj.setfont(&newfont);

二  修改靜態文字框控制項中文字顏色、文字背景顏色、和控制項背景顏色

首先應當明確的是,在那個函式中下手(寫**),答案是

onctlcolor()函式中,這個函式是用於響應wm_ctlcolor訊息的,當控制項需要重繪時會發出這個訊息。

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

三個引數:pdc表示與當前控制項相關聯的裝置上下文,pwnd是當前控制項的指標,nctlcolor 表示控制項的型別,返回值是乙個hbrush控制代碼,該控制代碼使用者重繪控制項的背景色。

然後說一下settextcolor()、setbkcolor()、和setbkmode()三個函式

settextcolor()函式很明顯是設定文字顏色的,而setbkcolor()函式不是用來設定控制項背景顏色的,而是用來設定文字背景顏色的(就是包含文字的矩形)、

setbkmode()是用來設定文字背景模式的,引數只有兩個選擇opaque、transparent表示是否透明。

那麼控制項的背景顏色怎麼設定呢?答案是通過返回的hbrush控制代碼。

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

return hbr;//返回用於重繪控制項背景的畫刷

}

MFC中修改靜態文字框中文字的字型 顏色

假設有乙個靜態文字框控制項,其id為 idc static xsdj,且關聯乙個control類的cstatic型別的變數m static xsdj。設定字型時自然要用到cfont類,下面介紹兩種方法,兩種方法都要先在標頭檔案中新增乙個變數cfont newfont,切記要宣告稱類的成員變數,不能是...

MFC之靜態文字框的使用

如果我們想在程式中動態建立靜態文字框,而不是像前面那樣直接從toolbox中拖到對話方塊模板上,那麼就需要使用cstatic類的成員函式create。create函式的原型如下 virtual bool create lpctstr lpsztext,dword dwstyle,const rect...

MFC 文字框 用法

mfc裡面的edit control控制項的用法是怎麼樣的,1.怎麼樣才能賦值給edit control控制項並在edit control控制項顯示出來 2.怎麼取得edit control控制項的值並傳遞給乙個變數?希望各位大俠幫幫忙!獲得edit cedit pboxone pboxone ce...