首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

在VC.NET中重载OnCtlColor函数改变控件的背景色时,重载函数为什么不起作用?该怎么处理

2012-01-19 
在VC.NET中重载OnCtlColor函数改变控件的背景色时,重载函数为什么不起作用??我在VC6.0中通过下面的操作可

在VC.NET中重载OnCtlColor函数改变控件的背景色时,重载函数为什么不起作用??
我在VC6.0中通过下面的操作可以改变对话框MyDialog中LISTBOX控件的背景色
在MyDialog.h文件中添加成员变量和重载函数      
CBrush       m_brush;      
HBRUSH   OnCtlColor(CDC*   pDC,CWnd*   pWnd,UINTnCtlColor)  
在MyDialog.CPP中添加重载函数和画刷          
在MyDialog::OnInitDialog()中添加      
            m_brush.CreateSolidBrush(RGB(0,0,255));     //背景色    

HBRUSH   MyDialog::OnCtlColor(CDC*   pDC,CWnd*   pWnd,UINT   nCtlColor)//重灾函数    
    {
    HBRUSH       hbr=MyDialog::OnCtlColor(pDC,pWnd,   nCtlColor);        
    if(nCtlColor==CTLCOLOR_LISTBOX)
      {      
          return   m_brush;      
      {          
            return   hbr
      }
但是我把这段代码   在Visual   Studio2005   的VC   中时实践时   ,发现listbox背景色不会改变。这是为什么啊?   我用单步调试发现程序不会触发该重载函数!为什么在VC.NET中重载该函数会不行呢?   谢谢大家多多指点!

[解决办法]
不懂也要帮楼主顶顶
[解决办法]
return m_brush;
{
return hbr
}
试下 改成: hbr=CreateSolidBrush(RGB(0,0,255));
return hbr;

[解决办法]
不懂也要帮楼主顶顶

[解决办法]
不懂也要帮楼主顶顶

热点排行