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