背景图片,控件色等

//背景色-----------------------------------------------------

1.添加消息函数ON_WM_ERASEBKGND,删除缺省的return后面内容.然后自己发挥
若直接return TRUE;设置好这里后,在InitInstance()中设置的

  SetDialogBkColor(RGB(250,250,250),RGB(255,0,0));//背景色-字体色,但是对按钮等一些文字不起效果.只能设置纯色

就不起作用了.变成透明色的了

OnEraseBkgnd()设置背景色,但对控件颜色无效

BOOL CDFXDlg::OnEraseBkgnd(CDC* pDC) //添加背景图片
{
CBitmap bmp;
bmp.LoadBitmap(IDB_BACK);
CDC mdc;
mdc.CreateCompatibleDC(pDC);
mdc.SelectObject(&bmp);
CRect rect;
GetClientRect(rect);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&mdc,0,0,SRCCOPY);


return TRUE;
// return CDialog::OnEraseBkgnd(pDC);
}

//控件色控制-----------------------------------------------------

添加ON_WM_CTLCOLOR消息

HBRUSH CDFXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//pdc用来控制控件文字和颜色背景()编辑框颜色---不能修改按钮控件/时间控件颜色
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
switch(pWnd->GetDlgCtrlID())
{
case IDC_STATIC:
pDC->SetTextColor(RGB(255,255,0));
pDC->SetBkMode(TRANSPARENT);
// pDC->SetBkColor(RGB(255,255,255));
return (HBRUSH)GetStockObject(NULL_BRUSH);//静态文本控件没有阴影背景
case IDC_NUMBER:
pDC->SetTextColor(RGB(0,0,0));
//static CBrush br(RGB(255,0,0));
//return br;

}
// TODO: Return a different brush if the default is not desired
return hbr;

}

//自绘---------------------------------------------------------------

不想学了,vc装饰界面是不是太麻烦了,以前学校用过一点点java,感觉那个很好设置的

 

原文地址:https://www.cnblogs.com/fx427103/p/4059836.html