对话框控件背景的修改

来源:互联网 发布:判断男生喜欢你 知乎 编辑:程序博客网 时间:2024/04/29 21:33

修改对话框的一些控件背景,是一些朋友经常遇到的问题.

1.这里将控件类化,在OnDraw函数中对控件背景进行修改.

2.如果是修改控件背景颜色是一件稍微比较容易点.只要在OnCtlColor这个函数修改外观.这个函数返回一个CBush.所以要在CXXDialog中CBush m_brush.

m_brush.CreateSockBrush();

 

然后直接

HBRUSH CSettingDlg::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 desired
 if(pWnd->GetDlgCtrlID()==IDC_LINE_STYLE)
 {
  pDC->SetTextColor(RGB(255,0,0));
  pDC->SetBkMode(TRANSPARENT);
  return m_brush;
 }
 if(pWnd->GetDlgCtrlID()==IDC_LINE_WIDTH)
 {
  pDC->SetTextColor(RGB(255,0,0));
  pDC->SetBkMode(TRANSPARENT);
//  pDC->SetBkColor(RGB(0,0,255));
  return m_brush;
 } 
 if(pWnd->GetDlgCtrlID()==IDC_TEXT)
 {
  pDC->SelectObject(&m_font);
 }

 if(pWnd->GetDlgCtrlID()==IDOK)
 {
  pDC->SetTextColor(RGB(255,0,0));
  return m_brush;
 }


 return hbr;
}

3.如果要修改控件的背景为一张照片,还要用到OnEraseBkgnd(CDC* pDC)

在这个函数里面,在控件区域画图片.然后在OnCtrlColor

HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

 // TODO:  在此更改 DC 的任何属性
 if(pWnd->GetDlgCtrlID()==IDC_XXX)
 {
  pDC->SetBkMode(TRANSPARENT);
  return (HBRUSH)::GetStockObject(NULL_BRUSH);
 }
 // TODO:  如果默认的不是所需画笔,则返回另一个画笔
 return hbr;
}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 28天宝宝吵瞌睡怎么办 2个月宝宝闹瞌睡怎么办 被刺猬的刺扎了怎么办 买电脑被坑了怎么办 买电脑被坑了怎么办啊 在电脑城被坑了怎么办 小狗20天不睁眼怎么办 金星秀停播沈南怎么办 干了活拿不到钱怎么办 干完活要不到钱怎么办 让蚊子咬了很痒怎么办 秋天被蚊子咬了怎么办 练芭蕾脚背太硬怎么办 杨梅酒里的杨梅怎么办 月经期喝了啤酒怎么办 泡过酒的樱桃怎么办 泡了酒的桑葚怎么办 不知怀孕喝了酒怎么办 香氛蜡烛记忆环怎么办 我吃了马兜铃怎么办呀 肝肾衰弱有毒素怎么办 肾阴虚阳虚都有怎么办 吃辣刺激胃疼怎么办 舌头没有舌苔有裂纹疼痛怎么办 舌苔厚黄是怎么回事且口臭怎么办 舌苔厚白是怎么回事且口臭怎么办 长期有舌苔白厚怎么办 小孩的舌苔厚白怎么办 口苦口臭舌苔黄怎么办 婴儿的舌苔厚白怎么办 舌苔黄厚口臭痒怎么办 想让月经提前来怎么办 宝宝拉肚子怎么办吃什么好 投资p2p跑路了怎么办 借钱不还怎么办最有效 朋友借小钱不还怎么办 网络上贷款不还怎么办 网贷实在还不了怎么办 娱乐平台跑路了怎么办 360借条被拒了怎么办 网贷注册太多了怎么办