我用了个edit,想用api,而不是mfc来改便字体颜色,用了SetTextColor这个函数,可是只有当使用TextOut时字体才会有反映,但是用SetWindowText就不行,请问各位大侠用什么方法才能让SetWindowText产生的文字颜色改变.
我听人说换掉它的窗口过程,处理WM_CTRLCOLOR消息,可是想问一下编辑框的窗口过程的源代码在那里可以看到?不会要把代码自己全重写吧,那用编辑框就没意义了,请各位帮忙,谢谢!!!!!!
我听人说换掉它的窗口过程,处理WM_CTRLCOLOR消息,可是想问一下编辑框的窗口过程的源代码在那里可以看到?不会要把代码自己全重写吧,那用编辑框就没意义了,请各位帮忙,谢谢!!!!!!
解决方案 »
- 不销毁对象?//啥意思?怎么销毁CWnd对象?
- 验证码识别项目
- 用图片透明效果时TransparentBlt的问题
- 计算机与英文大虾进
- 当返回结果记录集m_pRecordset中没有某个字段,而我用m_pRecordset->GetCollect("没有的字段名"),会返回什么值呢?
- 如何在MFC界面内获得编辑框内的连接文件中的.stk内容?
- 高分请教一个对话框程序问题。!!!!!!!!!!!!!!!!
- 那里有较好的完整的oracle8i下栽,请告诉地址,谢谢!!!
- 关于图中最短路径得问题。
- illegal call of non-static member function
- 50分请求:有SQL Server7.0的下载地址吗?
- 有什么界面开发的书或网站介绍? 有分送
你替换它的窗口过程后,在不是你自己处理的情况下使用CallWindowProc调用默认的窗口过程函数即可。如果你用的是MFC,调用基类的窗口函数也可以。
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
pDC->SetBkMode( TRANSPARENT );
pDC->SetTextColor( RGB( 0, 128, 128) ); // TODO: Return a different brush if the default is not desired
if( nCtlColor == CTLCOLOR_DLG )
return (HBRUSH) m_brush.GetSafeHandle( );
if( nCtlColor == CTLCOLOR_STATIC )
return (HBRUSH) m_brush.GetSafeHandle( ); return hbr;
}
case WM_CTLCOLOREDIT:
hdc = GetDC (hwndReceiveEdit) ;
SetTextColor(hdc111,RGB(0,255,0));
return 0;
可使用SetWindowText时还是不行,而且连textout也没反映了,请问是不是处理错了还是SetTextColor只能作用于textout函数,请问有没有别的解决办法?(只用api不用mfc解决)
谢谢!