问题描述
- Visual C++的一段代码搞不懂求解释
-
说一下自己的理解。题目是孙鑫老是的文本输出的例子。
1:GetBkColor得到背景白色,然后SetTextColor(白色)把背景白色设置为文字颜色。跟着clr应该是赋值得到白色了吧,但是F5看的时候是黑色,就要原文字颜色。我这么理解应该错了
1 COLORREF clr=dc.SetTextColor(dc.GetBkColor());
//GetBkColor属于dc对象,改变dc中的背景值(白色)。然后SetTextColor用白色值设置了dc文字的颜色。
问题赋值给clr是什么?为什么是0(黑色)好像等号的左右两边没有任何关系。
2 dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);//用背景色输出了文字,等于没看不到。
3 m_strLine=m_strLine.Left(m_strLine.GetLength()-1);//不用解释,理解。
4 dc.SetTextColor(clr);//这里这个函数用clr的0,把文字颜色设置为黑色。当么语句1应该是白色给了clr。
问题主要在语句1和4.求帮忙,谢谢哪位大叔给个解释
http://msdn.microsoft.com/zh-cn/library/wf4k5sew.aspx这个上面的我还是没能看明白。不用给我地址了。
解决方案
要看SetTextColor是如何定义的,它返回的应该是 COLORREF 类型的变量,而且返回的是dc中改变之前的TextColor。
解决方案二:
这段代码,我记得好想实现的作用是字幕的覆盖吧
解决方案三:
谁给解释一下1、4的语句,特别是1的语句什么意思。感觉赋值,和后面的调用颜色好像没有关系。
时间: 2024-08-03 06:15:03