CStatic設置控件背景色,輸出字體顏色以及設置背景透明


1.創建一個MFC對話框,改變static背景色,字體顏色

BOOL CteststaticcolorDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// 將“關於...”菜單項添加到系統菜單中。

	// IDM_ABOUTBOX 必須在系統命令范圍內。
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != nullptr)
	{
		BOOL bNameValid;
		CString strAboutMenu;
		bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
		ASSERT(bNameValid);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// 設置此對話框的圖標。  當應用程序主窗口不是對話框時,框架將自動
	//  執行此操作
	SetIcon(m_hIcon, TRUE);			// 設置大圖標
	SetIcon(m_hIcon, FALSE);		// 設置小圖標

	// TODO: 在此添加額外的初始化代碼
	m_font1.CreatePointFont(120, TEXT("Impact"));
	m_font2.CreatePointFont(120, TEXT("Arial"));

	return TRUE;  // 除非將焦點設置到控件,否則返回 TRUE
}

  

HBRUSH CteststaticcolorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

	// TODO:  在此更改 DC 的任何特性
	if (nCtlColor == CTLCOLOR_STATIC)
	{
		switch (pWnd->GetDlgCtrlID())
		{
		case IDC_STATIC1:
			pDC->SetTextColor(RGB(255, 0, 0));
			pDC->SetBkColor(RGB(255, 255, 255));
		//	pDC->SetBkMode(TRANSPARENT);
			pDC->SelectObject(&m_font1);
			return (HBRUSH)::GetStockObject(BLACK_BRUSH);
			break;
		case IDC_STATIC2:
			pDC->SetTextColor(RGB(255, 255, 0));
			pDC->SetBkColor(RGB(255, 255, 255));
			pDC->SelectObject(&m_font2);
			pDC->SetBkMode(TRANSPARENT);
			return (HBRUSH)::GetStockObject(BLACK_BRUSH);
			break;
		default:
			break;
		}
	}

	// TODO:  如果默認的不是所需畫筆,則返回另一個畫筆
	return hbr;
}

 

 

運行效果:

另:非動態創建,可以選擇CLabel 類,   http://www.codeproject.com/Articles/215/Extended-Use-of-CStatic-Class-CLabel-1-6

CLabel屬性說明:(19條消息) CLabel函數說明_stawn的專欄-CSDN博客_clabel函數用法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM