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