HBRUSH hbr;
第一种: hbr= CreateSolidBrush(RGB(255,0,0)); //单色的画刷
第二种: hbr= (HBRUSH)GetStockObject(BLACK_BRUSH); //只能取特定颜色的画刷,如BLACK_BRUSH,GRAY_BRUSH等刷
第三种: hbr= CreatePatternBrush(HBITMAP hbmp); //得到位图画刷
第四种: hbr = CreateHatchBrush(int fnStyle, COLORREF clrref) //创建一种带阴影的画刷
第五种: hbr= CreateBrushIndirect(LOGBRUSH); //通过LOGBRUSH结构体来取画刷
typedef struct tagLOGBRUSH { UINT lbStyle; //画刷类型 COLORREF lbColor; //颜色 LONG lbHatch; //阴影} LOGBRUSH, *PLOGBRUSH;
第六种: hbr= HBRUSH CreateDIBPatternBrush( //通过与设备无关位图创建一个画刷 HGLOBAL hglbDIBPacked, // handle to DIB UINT fuColorSpec // color table data );
例如:
HBRUSH CAfdView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);// TODO: Change any attributes of the DC hereif (pWnd->GetDlgCtrlID()==IDC_STATIC1){ pDC->SetTextColor(RGB(200,0,0)); pDC->SetBkColor(RGB(0,0,255)); static HBRUSH hBrush = CreateSolidBrush(RGB(222,0,255)); return hBrush;} // TODO: Return a different brush if the default is not desiredelse return hbr;}
改变对话框背景色
HBRUSH CDqfDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);// TODO: Change any attributes of the DC here// TODO: Return a different brush if the default is not desiredif(nCtlColor == CTLCOLOR_DLG) { CBrush *brush; brush = new CBrush(RGB(221,221,221)); return (HBRUSH)(brush->m_hObject); }return hbr;}