假設有乙個靜態文字框控制項,其id為:idc_static_xsdj,且關聯乙個control類的cstatic型別的變數m_static_xsdj。
設定字型時自然要用到cfont類,下面介紹兩種方法,兩種方法都要先在標頭檔案中新增乙個變數cfont newfont,切記要宣告稱類的成員變數,不能是區域性變數
方法一:
在oninitdialog()函式中新增**:
1 newfont.createpointfont(160,l"楷體"思路是:首先獲取原有字型,然後獲取其對應的logfont結構體,接著修改該logfont結構體,最後利用修改後的結構體,建立乙個新的字型。);2 m_static_xsdj.setfont(&newfont);
方法二:
給出**,依然是寫到oninitdialog 中
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訊息的,當控制項需要重繪時會發出這個訊息(姑且這麼簡單理解吧).
說以下這個函式的函式原型:
1 hbrush cdlgxsdj::onctlcolor(cdc* pdc, cwnd*pwnd, uint nctlcolor)然後說一下settextcolor()、setbkcolor()、和setbkmode()三個函式2
settextcolor()函式很明顯是設定文字顏色的,而setbkcolor()函式不是用來設定控制項背景顏色的,而是用來設定文字背景顏色的(就是包含文字的矩形)、
setbkmode()是用來設定文字背景模式的,引數只有兩個選擇opaque、transparent表示是否透明。
那麼控制項的背景顏色怎麼設定呢?答案是通過返回的hbrush控制代碼。
下面給出乙個**,和執行效果
1 hbrush cdlgxsdj::onctlcolor(cdc* pdc, cwnd*pwnd, uint nctlcolor)211return hbr;//
返回用於重繪控制項背景的畫刷
12 }
MFC中修改靜態文字框中文字的字型 顏色
一 設定字型 在oninitdialog 函式中新增 方法1 newfont.createpointfont 160,l 楷體 m static xsdj.setfont newfont 方法2 cfont font font m static xsdj.getfont 獲取cfont物件 logf...
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...