回 帖 发 新 帖 刷新版面

主题:如何恢复hDC的原有对象?

最近看书 利用vs2010 为环境,当改变按钮控件的背景色和文本颜色时用到DrawItem函数,该函数有一个hDC成员,可以在绘制按钮时使用这个DC来自定义,但是在操作完成后,即重载函数结束前,要恢复hDC的原有对象,请问是如何恢复的呢?具体代码如下:

CString strText;
 GetWindowText(strText);
 COLORREF crOldColor =::SetTextColor(lpDrawItemStruct->hDC,RGB(255,0,0));
 ::DrawText(lpDrawItemStruct->hDC,strText,strText.GetLength(),&lpDrawItemStruct->rcItem,DT_SINGLELINE|DT_VCENTER|DT_CENTER);
 //::SetTextColor(lpDrawItemStruct->hDC,crOldColor);

 

请问最后一行的作用就是恢复原有对象的吗?如果是,那我就不明白此时的变量crOldColor的值是多少了?是原先的那个值,还是第一次SetTextColor时候的那个值呢? 万分感谢

回复列表 (共3个回复)

沙发

查一下 SetTextColor 说明就知道了呀
肯定是返回原先的值

板凳

查一下 SetTextColor 说明就知道了呀
肯定是返回原先的值

3 楼

我明白了
谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册