VC 中怎样改变窗体背景色
首先在头文件里定义一个背景色的宏:
#define DLG_BACKGROUND RGB(220, 210, 201)
然后在CPP文件里添加映射二个函数:
BEGIN_MESSAGE_MAP(CDb9EWaveProDlg, CDialogEx) ON_WM_CTLCOLOR()//字体颜色 ON_WM_ERASEBKGND() //背景色 END_MESSAGE_MAP()
重载函数定义例如以下:
HBRUSH CxxDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (nCtlColor == CTLCOLOR_EDIT || nCtlColor == CTLCOLOR_LISTBOX) { pDC->SetBkColor(RGB(255, 255, 255)); return hbr; } else { HBRUSH hBrush = CreateSolidBrush(DLG_BACKGROUND); //创建背景刷; pDC->SetBkMode(TRANSPARENT); return hBrush; } } BOOL CxxDlg::OnEraseBkgnd(CDC* pDC) { CBrush back(DLG_BACKGROUND); CBrush* pold=pDC->SelectObject(&back); CRect rect; pDC->GetClipBox (&rect); pDC->PatBlt (rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY); pDC->SelectObject(pold); return TRUE; }
OK, Down.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步