刚将原来的工程改成由原来的多字节改成Unicode的方式,发现如上图的控件,是VS2010的Combo-box控件,比如我想要将该控件改成绿色,以前我在OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)函数里面,
pDC->SetBkColor(bkColor);
pDC->SetTextColor(textColor);
这样子应该是可以实现的,但是改成Unicode之后,尝试了很多方式都没成功,改变的只有选择下拉时候部分的颜色,选中之后显示框的颜色并没有改变。请问有人遇到过相似的问题吗,我该怎么操作才可以改变颜色呢。
pDC->SetBkColor(bkColor);
pDC->SetTextColor(textColor);
这样子应该是可以实现的,但是改成Unicode之后,尝试了很多方式都没成功,改变的只有选择下拉时候部分的颜色,选中之后显示框的颜色并没有改变。请问有人遇到过相似的问题吗,我该怎么操作才可以改变颜色呢。
解决方案 »
- 本想把一个线程sleep,让其他线程运行,可是,怎么不是这样呢?help
- VC SQL
- 高手请进:用VC执行控制台程序或DOS程序后,如何取得它们显示在DOS窗口的信息?
- 怎么利用DirectShow从camera摄取一幅bmp图?
- 如果在菜单中加入图标?
- 谁有msdn 中文版 下载呀?谢谢。
- 各位,推荐VB写COM的书籍!高分了!
- 把单文档做成控件后不能响应鼠标消息
- CreateStreamOnHGlobal()干什么的,什么情况下用它啊?
- 请问:如何给基于对话框的程序加上封面!!!
- vs2010中c++操作excel
- 关于CMFCPropertyGridProperty中ComboBox下拉框问题
HPEN hPen,hOldPen; //画笔
hPen = CreatePen(PS_SOLID, 2, RGB(255,0,0));//生成红色色画笔 画笔宽度5个像素
hOldPen = (HPEN)SelectObject(hdc, hPen);//把画笔引入设备场境 SelectObject(hdc, hOldPen);
DeleteObject(hPen);:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
if(pWnd->GetDlgCtrlID() == IDC_控件) //更改按钮颜色
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetBkColor(RGB(0, 0, 0));
pDC->SetTextColor(RGB(255, 255, 255));
return m_brush; //自己创建的画刷
}
{
if (nCtlColor == CTLCOLOR_LISTBOX)
pDC->SetBkColor(RGB(255, 0, 0)); return CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);
}
Oncreate函数里创建。