1. 程式人生 > >MFC靜態文字控制元件如何設定字型--大小和顏色及背景色

MFC靜態文字控制元件如何設定字型--大小和顏色及背景色

方法一:通過構建相應字型

CFont font;
font.CreateFont(10,10,0,0,FW_BLACK,FALSE,FALSE,
FALSE,GB2312_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
FIXED_PITCH|FF_MODERN, _T("華文楷體"));
m_stc.SetFont(&font);
m_stc.SetWindowText(_T("Hello World"));
font.DeleteObject();

方法二:通過靜態文字控制元件ID

if(pWnd->GetDlgCtrlID()

==IDC_STATIC_TEST)

{//IDC_STATIC_TEST是控制元件的ID

pDC->SetTextColor(RGB(128,128,256));//RGB巨集改變顏色

}

具體實現方式

1.在對話方塊的類中加入成員:
CBrush
m_brush;
COLORREF
m_color;
2.
OnInitDialog()中,加入
m_brush.CreateSolidBrush(RGB(255,255,255));
//
此處設定的RGB值可以改變控制元件的背景色。
m_color=RGB(0,0,0)
//
此處設定控制元件的文字初始顏色。

3.過載WM_CTLCOLOR訊息的響應函式.

此函式的原型:
afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd*pWnd,UINT nCtlColor);

引數nCtlColor用於指定控制元件的型別,可以是:
.CTLCOLOR_BTN按鈕 .CTLCOLOR_DLG對話方塊 .CTLCOLOR_EDIT編輯框 .CTLCOLOR_LISTBOX列表控制元件 .CTLCOLOR_MSGBOX訊息控制元件 .CTLCOLOR_SCROLLBAR滾動條 .CTLCOLOR_STATIC靜態控制元件

如果要指定某個特定控制元件可以這樣寫:ID IDC_STATIC1
if (pWnd-> GetDlgCtrlID()==IDC_STATIC1)
{

pDC-> SetTextColor(RGB(255,0,0)); //設定字型顏色 pDC-> SetBkMode(TRANSPARENT); //設定字型背景為透明 return(HBRUSH)::GetStockObject(BLACK_BRUSH); // 設定背景色

}

BLACK_BRUSH:黑色
WHITE_BRUSH:
白色
GRAY_BRUSH:
灰色
NULL_BRUSH:
透明
HOLLOW_BRUSH
:透明
[
舉例1]
為對話方塊設定背景顏色
1. CBrush m_Brush;
2. m_Brush.CreateSolidBrush(RGB(255,0,0));
3. HBRUSH CTest123Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if (nCtlColor == CTLCOLOR_DLG )
return (HBRUSH)m_Brush.GetSafeHandle();
returnCDialog::OnCtlColor(pDC,pWnd,nCtlColor);
}
[
舉例2]為對話方塊設定背景圖片
1. CBrush m_Brush;
2. CBitmap* pBitmap = new CBitmap;
ASSERT(pBitmap);
pBitmap->LoadBitmap(IDB_BACKGROUD);
m_Brush.CreatePatternBrush(pBitmap);
3. HBRUSH CTest123Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if (nCtlColor == CTLCOLOR_DLG )
return (HBRUSH)m_Brush.GetSafeHandle();
returnCDialog::OnCtlColor(pDC,pWnd,nCtlColor);
}
[
舉例3]
HBRUSH CColorEditBoxDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_EDIT1)
//第一個編輯框
{
pDC->SetBkColor(m_redcolor); //輸入文字的的底色 pDC->SetTextColor(m_textcolor);//輸入文字的顏色 hbr = (HBRUSH) m_redbrush; // 編輯框控制元件的填充色
}
if (pWnd->GetDlgCtrlID() == IDC_EDIT2)//
第二個編輯框
{
pDC->SetBkColor(m_bluecolor); // 輸入文字的的底色 pDC->SetTextColor(m_textcolor); // 輸入文字的顏色

hbr = (HBRUSH) m_bluebrush; //編輯框控制元件的填充色

}
return hbr;

對對話方塊:

{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_STATIC)
{ pDC-> SetTextColor(RGB(255,0,0)); //字型顏色 pDC-> SetBkColor(RGB(0, 0, 255)); //字型背景色 }
return hbr;
}
4.需要改變顏色時
m_color=RGB(128,0,255);//
此處改變字型的顏色
CStatic*
m_pStatic1=(CStatic*)GetDlgItem(IDC_STATIC1);
m_pStatic1->RedrawWindow();

相關推薦

MFC靜態文字控制元件如何設定字型--大小顏色景色

方法一:通過構建相應字型 CFont font; font.CreateFont(10,10,0,0,FW_BLACK,FALSE,FALSE, FALSE,GB2312_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,DEF

mfc靜態文字控制元件裡實現畫圖

有時候,我們需要自繪一些圖形,這時候就可以使用靜態文字控制元件來實現繪圖功能。具體實現效果如上,要實現以上功能,首先我們需要獲取到控制元件視窗的控制代碼,並且設定繪製的範圍然後在實現畫X,Y軸,刻度標尺等功能。具體程式碼如下void CMFCApplication5Dlg:

iOS11 UISegmentControl同時設定字型大小顏色不起使用的解決方案

以前設定UISegmentControl字型大小和顏色,程式碼我是這樣寫的: //設定正常狀態和選中狀態下的字型大小 [goodsSementControl setTitleTextAt

MFC 可以設定景色字型字型顏色、透明背景的 Static 靜態文字控制元件

MFC庫裡沒有符合這個條件的控制元件,於是我自己寫了一個,初步測試有效。 注:可以設定透明背景,但還不能做到透明度設定(如50%透明度)         如果設定了背景色,就不保留透明背景         預設背景色是透明的 // 設定背景色(若clr為CLR_NONE

MFC ListBox控制元件設定字型顏色

描述 最近的專案中需要用到 MFC 的列表控制元件,列表控制元件中需要動態插入產品不同的測試狀態,產品的不同狀態下的測試結果分為 PASS 和 FAIL 兩種情況,這兩種測試結果插入的狀態字串顏色分別呈現為綠色和紅色。並且雙擊狀態 Item,繪製出對應狀態下的

把介面上靜態文字控制元件的尺寸根據文字的內容自動調整大小

函式功能:該函式計算指定的正文字串的高度和寬度。    函式原型:BOOL GetTextExtentPoint32(HDC hdc, LPCTSTR lpString, int cbString, LPSIZE lpSize);    引數:hdc:裝置環境控制代碼。    lpString:指向正文

mfc listcontrol控制元件改變字型大小

LOGFONT   logfont;//最好弄成類成員,全域性變數,靜態成員       CFont   *pfont1   =   m_List.GetFont();       pfont1->GetLogFont(   &logfont   );       logfont.lfHeigh

MFC對話方塊新增透明的靜態文字控制元件

作為一個MFC的初學者,今天照一本說上簡單做了一個對話方塊新增透明的靜態文字控制元件的任務。具體步驟如下: 1、首先用VC6.0建立一個最簡單的對話方塊。 2、在對話方塊的檢視介面中加入一個靜態文字控制元件,同時在靜態文字控制元件的屬性中設定它為透明的。 3、在對話方塊類的初

把介面上靜態文字控制元件的尺寸根據文字的內容自動調整大小(轉)

   函式功能:該函式計算指定的正文字串的高度和寬度。 函式原型:BOOL GetTextExtentPoint32(HDC hdc, LPCTSTR lpString, int cbString, LPSIZE lpSize); 參      數:hdc:裝置環境控制代碼。               

小A大B聊MFC:神奇的靜態文字控制元件--初識DC

大B:小A,你在編碼時用過靜態文字控制元件嗎? 小A:靜態文字控制元件,你是說這個Static Text吧,當然用過了,設計介面那能少了它。 大B:那你都用它做什麼呢? 小A:這個還能幹什麼呀,就是顯示文字唄。 大B:其實它能擴展出很強大的功能,不知你有沒有發現。 小A:很

MFC入門(三)-- MFC圖片/文字控制元件(迴圈顯示文字圖片的小程式)

慣例附上前幾個部落格的連結: MFC入門(一)簡單配置:http://blog.csdn.net/zmdsjtu/article/details/52311107 MFC入門(二)讀取輸入字元:http://blog.csdn.net/zmdsjtu/article/details/52315088 &

Android 一個TextView中設定文字不同字型大小顏色的最完整方法

在做專案的時候,經常會遇到過一行文字有兩種顏色。有時候直接會想到用多個TextView來實現。今天就介紹一下更為簡單的方法,用一個TextView實現。 效果: 這幾個都實現了一行字有不同顏色,還有兩個字型大小也不一樣,我們下邊一一介紹。 首先xml程

WTL環境中CEdit或Cstatic控制元件中修改字型大小顏色

      本文主要介紹只讀模式的下的CEdit控制元件和CStatic控制元件的字型的大小和顏色的修改,編輯模式下的CEdit控制元件的原理是一樣的只是訊息變了。       1. 修改字型顏色         只讀模式下的CEdit控制元件和CSataic控制元件通過傳送

Static Text 靜態文字控制元件

靜態文字框的使用 動態建立靜態文字框,需要使用CStatic類的成員函式Create。Create函式的原型如下: virtual BOOL Create(   LPCTSTR lpszText,   DWORD dwStyle,   const RECT& rec

模式對話方塊中“static text”控制元件字型大小改變

原文連結:http://blog.csdn.net/yf210yf/article/details/6955283 在對話方塊標頭檔案新增: CStatic m_static;  CFont   font; 在BOOL CYourDlg::OnInitDialog()中新增 m_static.Subcl

改變GridView控制元件表頭字型大小、粗細

    GridView控制元件表頭預設是粗體,字型大小也是一定的,如果只在<HeaderStyle />標籤下改變Font-Bold="false" Font-Size="Large",會發現表頭字型仍然是粗體,字型大小並沒有如我們所希望地變大。     另,在

TextView 動態設定字型大小加粗

//字型大小為16,並且加粗 tv_1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16); tv_1.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));

mfc怎麼動態載入時間以及改變字型大小顏色

第一次寫  留著備份 以後可能還會用到 動態載入時間 1.在OnInitDialog() 初始化函式中加入 SetTimer(1,1000,NULL); 2.增加訊息函式 OnTimer(UINT nIDEvent)  增加以下函式 CTime

iOS開發之設定導航欄標題的字型大小顏色

方法一:自定義檢視。 UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];

MFC的Picture控制元件上畫線

CPen pen(PS_SOLID,5,RGB(255,0,0));//建立一個畫筆工具 //CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH)); CWnd *pwnd=GetDlgItem(IDC_ShowImg)