此函数要求返回的HBRUSH有什么用呀。我使了一个虽便找一个HBRUSH都可以呀,但结果没什么变化呀!!!这是我的函数:
HBRUSH CEx06aDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_EDIT) {
pDC->SetBkColor(RGB(255, 255, 0));
//pDC->SetTextColor(RGB(255, 0, 0));
return m_hYellowBrush;/* return m_hRedBrush;//如果用这个的话,好像也没有什么变化呀!!*/ } if(nCtlColor == CTLCOLOR_DLG) {
pDC->SetBkColor(RGB(255, 0, 0));
return m_hRedBrush;
/* return m_hYellowBrush;//如果用这个的话,好像也没有什么变化呀!!*/
}
return hbr;
}
其中m_hRedBrush和m_hYellowBrush是我在初始化时定义的如下:
m_hYellowBrush = CreateHatchBrush(HS_FDIAGONAL, RGB(255, 255, 0));
m_hRedBrush = CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));那么返回的HBRUSH到底能在哪看到效果呢?
HBRUSH CEx06aDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_EDIT) {
pDC->SetBkColor(RGB(255, 255, 0));
//pDC->SetTextColor(RGB(255, 0, 0));
return m_hYellowBrush;/* return m_hRedBrush;//如果用这个的话,好像也没有什么变化呀!!*/ } if(nCtlColor == CTLCOLOR_DLG) {
pDC->SetBkColor(RGB(255, 0, 0));
return m_hRedBrush;
/* return m_hYellowBrush;//如果用这个的话,好像也没有什么变化呀!!*/
}
return hbr;
}
其中m_hRedBrush和m_hYellowBrush是我在初始化时定义的如下:
m_hYellowBrush = CreateHatchBrush(HS_FDIAGONAL, RGB(255, 255, 0));
m_hRedBrush = CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));那么返回的HBRUSH到底能在哪看到效果呢?
解决方案 »
- 关于视图/文档内splitter 切分视图部分区域尺寸控制问题
- Unhandled exception in WCAFrame.exe(KERENL32.DLL):0xE06D7363:Microsoft C++ E
- 菜鸟问题:推荐一个数据库的显示、增删改查的界面控件
- 关于定时器和消息重入的问题,在线等,谢谢!
- 怎样给类定义一个结构体数组类型变量
- 同步报警问题
- #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE)是什么意思?
- 急急!!!!怎么用Installshield制作反安装程序!
- VC中为什么有的函数前不用加类名及作用域限定符,有的必须加呢?
- 怎样获得一个窗口的鼠标移入及移出消息
- 关于Socket连接编程
- 怎么得到进程中各线程的状态?
需要指出的是画刷是给整个控件的背景用的,其覆盖面为这个控件;
而pDC指定的背景颜色只在pDC的绘制范围有效,一般会把其范围内控件背景遮住。
HBRUSH m_hRedBrush;//这些变量是在类头文件中定义的吗?
是在头文件里定义的!!
可是我把它们换成别的什么但结果都是一样啊!!
m_hYellowBrush = CreateSolidBrush(RGB(255,255,0));
m_hRedBrush = CreateSolidBrush(RGB(255,0,0));