以下是我的代码
HBRUSH CMyTestDlg::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); //判断下是不是你要改的控件ID
if (nCtlColor == CTLCOLOR_STATIC) //这里是重点.设断点跟踪,nCtlColor 的值永远是"3"(CTLCOLOR_BTN),我的Dialog上的控件都是从控件编辑器里放进去的,没有自己手动创建的,而且也不只有BUTTON,还有PICTURE,GROUPBOX,STATIC...等等..为什么这里一直都只取到CTLCOLOR_BTN..
{
if(pWnd->GetDlgCtrlID()==IDC_STATIC_TUSERNAME)
{
pDC->SetTextColor(RGB(255,255,255));
pDC->SetBkColor(RGB(22,22,22));
}
}
return hbr;
}
还有.我新建的一个工程,用同样的方法就可以成功将文字的的颜色和文字的背景色修改!但我自己的工程就一样是只取到CTLCOLOR_BTN WHY???????
请帮帮忙!!先谢过了...
HBRUSH CMyTestDlg::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); //判断下是不是你要改的控件ID
if (nCtlColor == CTLCOLOR_STATIC) //这里是重点.设断点跟踪,nCtlColor 的值永远是"3"(CTLCOLOR_BTN),我的Dialog上的控件都是从控件编辑器里放进去的,没有自己手动创建的,而且也不只有BUTTON,还有PICTURE,GROUPBOX,STATIC...等等..为什么这里一直都只取到CTLCOLOR_BTN..
{
if(pWnd->GetDlgCtrlID()==IDC_STATIC_TUSERNAME)
{
pDC->SetTextColor(RGB(255,255,255));
pDC->SetBkColor(RGB(22,22,22));
}
}
return hbr;
}
还有.我新建的一个工程,用同样的方法就可以成功将文字的的颜色和文字的背景色修改!但我自己的工程就一样是只取到CTLCOLOR_BTN WHY???????
请帮帮忙!!先谢过了...
解决方案 »
- 用MFC编写一个能显示图像数据的软件要怎么弄?
- atl写的组件(无窗口),再用dialog测试程序测试消息事件成功,但嵌入html页面fire事件不成功
- 关于throw 的疑问?
- 在isapi中以下url怎么映射参数?
- .\\与API函数GetModuleFileName获取应用程序目录有何不一样?
- 求 VC调用dll的例子 。 马上给分
- 请教数据类型转换!(LPSTR->BYTE)紧急求救中。。。
- 对话框资源是否可以按内容分组
- 深入浅出上的一个程序不明白,来请教。
- 有谁知道怎么把Access中的"日期/时间"类型的字段数据显示在Date Time Picker控件上。
- 求助:请大家介绍基本参考书吧
- 请教一个vc6.0的调试问题
我在我新建的工程下用同样的方法,设断点跟踪,nCtlColor的值就会改变哦.看来不是你说的这个原因.TO : my_girlf
我有对比过..我两个工程里控件的属性完全一样.除了GROUP 和 VISBILE 两个属性是TRUE 之外.其它的属性均为FALSE
所以也排除两个工程中控件的属性不同的问题.虽然还没有解决,但是也谢谢上面两位了...
会不会是因为我的对话框上的控件数量太多的问题呢.因为我发现跟踪之后.在所有的BUTTON响应过OnCtlColor之后,就又重头执行了!!郁闷啊.
继续等待高手出现....