对话框控件背景的修改
来源:互联网 发布:判断男生喜欢你 知乎 编辑:程序博客网 时间: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;
}
- 对话框控件背景的修改
- 修改对话框picture控件背景颜色的方法
- MFC对话框修改背景颜色或添加背景图片、控件背景与字体颜色的修改
- 【VS开发】VS2010 MFC中控件、对话框等背景颜色动态修改的方法
- vc 对话框修改菜单栏的背景颜色
- vc 对话框修改菜单栏的背景颜色
- MFC修改对话框及控件背景颜色 - 很轻松!
- 对话框控件属性的修改
- 对话框控件属性的修改
- 对话框控件属性的修改
- 对话框控件属性的修改
- 对话框控件属性的修改
- 修改对话框背景
- 又一个修改对话框背景颜色
- vc 修改对话框背景颜色
- VS2012修改对话框背景颜色
- MFC基于对话框的的背景颜色修改
- MFC基于对话框的的背景颜色修改
- [ZT]解读WINCE 5.0 KITL代码流程
- 解决运行eclipse内存不足的问题
- WMB在项目中的应用
- 杂七杂八——Name与x:Name的关系
- 例外被抛出且未被接住问题
- 对话框控件背景的修改
- GridView中按扭的事件处理
- 待续
- 关于显式调用DLL、隐式调用DLL和查看DLL输出函数
- ==和equals的区别
- 分页-循环输出序号
- DB2数据库的安装
- Miami Beach
- linux framebuffer 例子