MFC改变按钮的颜色,方法简单,实用
2014-12-23 15:35
405 查看
手动添加消息映射的方法实现改变按钮的颜色,不必创建新的类!
1.将button修改为owner draw 类型
2.重载OnDrawItem函数,并对其改写
在适当的位置添加下面的语句
afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
ON_WM_DRAWITEM()
3.在消息响应函数里添加如下代码:
void CXXX::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);
ASSERT(lpDrawItemStruct->CtlType == ODT_BUTTON);
CString strText;
((CButton *)GetDlgItem(nIDCtl))->GetWindowText(strText);
SetBkMode(lpDrawItemStruct->hDC, TRANSPARENT);
//if (lpDrawItemStruct->itemState&ODS_SELECTED)
{
CBrush brush(RGB(255, 0, 0));
dc.FillRect(&(lpDrawItemStruct->rcItem), &brush);
DrawText(lpDrawItemStruct->hDC, strText, strText.GetLength(),
&lpDrawItemStruct->rcItem, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
SetBkMode(lpDrawItemStruct->hDC, TRANSPARENT);
}
dc.Detach();
}
可以参考:http://blog.sina.com.cn/s/blog_65cab32d01013uad.html
1.将button修改为owner draw 类型
2.重载OnDrawItem函数,并对其改写
在适当的位置添加下面的语句
afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
ON_WM_DRAWITEM()
3.在消息响应函数里添加如下代码:
void CXXX::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);
ASSERT(lpDrawItemStruct->CtlType == ODT_BUTTON);
CString strText;
((CButton *)GetDlgItem(nIDCtl))->GetWindowText(strText);
SetBkMode(lpDrawItemStruct->hDC, TRANSPARENT);
//if (lpDrawItemStruct->itemState&ODS_SELECTED)
{
CBrush brush(RGB(255, 0, 0));
dc.FillRect(&(lpDrawItemStruct->rcItem), &brush);
DrawText(lpDrawItemStruct->hDC, strText, strText.GetLength(),
&lpDrawItemStruct->rcItem, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
SetBkMode(lpDrawItemStruct->hDC, TRANSPARENT);
}
dc.Detach();
}
可以参考:http://blog.sina.com.cn/s/blog_65cab32d01013uad.html
相关文章推荐
- MFC中改变按钮颜色的方法
- iOS开发之--最简单的导航按钮更换方法/导航颜色的改变
- VS2010 MFC中改变static字体颜色、大小、背景颜色(自定义类),及手动关联变量的方法
- iOS一种简单的改变一个label上范围内字体颜色和大小的方法
- C++学习笔记之MFC改变按钮颜色
- Android编程实现简单设置按钮颜色的方法
- C#中子界面按钮改变父界面属性的一种简单方法
- VC/MFC简单实用的全屏方法
- MFC中改变静态文本控件字体字号和颜色的方法
- Web中按下鼠标按钮颜色改变放开鼠标颜色恢复的方法
- MFC获取Check Box/Radio button按钮状态的方法,和改变改变其按钮状态的方法有
- 关于MFC下改变buntton按下、弹起时按钮的背景颜色的问题
- MFC CMFCButton不能改变颜色和其他属性解决方法
- MFC 在某些特定条件下改变控件内文本的颜色的方法
- MFC中改变编辑框文字大小、颜色的方法
- MFC中一种改变静态文本颜色的方法
- 改变Android按钮背景颜色的高效方法
- MFC 按钮如何改变颜色
- Android按钮按下的时候改变颜色实现方法
- 改变Android按钮颜色的高效方法