当前位置:C++技术网 > 资讯 > 关于WinProc函数的SetTextColor调用问题

关于WinProc函数的SetTextColor调用问题

更新时间:2018-01-27 09:21:29浏览次数:1+次

case WM_PAINT:
 hdc = BeginPaint(hwnd, &ps);
 SetTextColor(hdc, RGB(255, 0,0));// - 设置文字颜色为红色
 TextOut(hdc, 0, 0, L"Hello world", sizeof("Hello world")-1);// -显示文字
 SetTextColor(hdc, RGB(255, 255,0));// - 再次设置文字颜色

 EndPaint(hwnd, &ps);//- 注释后就不释放DC了

-------------问题------------------------

在CS_CLASSDC这一节中,我对代码反复理解,然后自己添加了一个SetTextColor(hdc, RGB(255, 255,0));// - 再次设置文字颜色

第二次设置颜色以后 窗口中的文字没有任何变化 请问是怎么回事呢


C++技术网会员解答:

    设置颜色是将画笔的颜色属性进行更改,而画笔是在TextOut函数调用时使用了。TextOut

使用的画笔是hdc关联的画笔,而这个画笔的颜色就是SetTextColor函数设置的。

    第二次设置颜色也是成功的,只是你没有再输出文字了。

    这里你需要理解一个模式,不管是画笔、画刷还是其他的,都是系统的一个绘画工具箱。所有设置的操作只是改变工具箱的属性而不是画出来的窗口的属性。所以都是先设置属性再用设置好属性的工具去画。

    理解了这个套路,这类问题就迎刃而解了。