如何设置CRichEditCtrl的背景色


我已经添加了OnCtlColor消息的处理,但是这个函数不能接受到CRichEditCtrl的指针,请问各位大侠如何处理?

10 个解决方案

#1


这个函数怎么会不能处理呢?

HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 

其中CWnd* pWnd这个不就是控件指针吗?
或者你用控件id也行,通过pWnd->GetDlgCtrlID()这个就是该控件ID

#2


那个函数可以运行,就是那个CRichEditCtrl的指针或者说标识符得不到

#3


SetBackgroundColor 不可用?

CRichEditCtrl::SetBackgroundColor
COLORREF SetBackgroundColor( BOOL bSysColor, COLORREF cr );
Return Value
The previous background color for this CRichEditCtrl object.
Parameters
bSysColor
Indicates if the background color should be set to the system value. If this value is TRUE, cr is ignored.
cr
The requested background color. Used only if bSysColor is FALSE.

#4


如何设置CRichEditCtrl为对话框的背景色?

#5


使用SetBackgroundColor,为什么一个工程可以设置颜色,另一个设置不了呢?

#6


另一个工程也可以了,现在的问题是如何设置CRichEditCtrl为对话框的背景色

#7


SetBackgroundColor(true,GetSysColor(COLOR_3DFACE));

#8


不行,第一个参数为TRUE时,后面值的颜色值被忽略了

#9


由于你得不到CRichEdit的指针或者其标识符,只能通过类名来找,因为所有修改的方法都需要控件的句柄。

试一下下面的方法:
在HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 中添加



HWND hwnd = pWnd->GetSafeHandle();
TCHAR szClassName[MAX_PATH] = _T("");
GetClassName(hwnd, szClassName, MAX_PATH);
if( strncmp(szClassName, "RichEditCtrl", strlen(szClassName) ) == 0 )



#10


SetBackgroundColor(false,GetSysColor(COLOR_3DFACE));
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告