2 qq 26070741 qq_26070741 于 2015.07.04 19:13 提问

请教一个MFC设置文本颜色的问题
mfc
CWnd* wnd = FindWindow(NULL, L"无标题 - 记事本");
wnd->GetDC()->SetTextColor(RGB(255, 0, 0));//文本颜色设置为红色
while (1)
{
    wnd->GetDC()->TextOutW(0, 0, L"123456", 6);

    Sleep(200);
}
SetTextColor根本不起作用呀,请问是为什么呀?用API不用MFC的类就可以

5个回答

caozhy
caozhy   Ds   Rxr 2015.07.04 23:40

SetTextColor对文本框等控件有效,对于你的自绘无效。不知道你打算做什么。

infoworld
infoworld   2015.07.04 21:08

你要在WM_PAINT消息里用CPaintDC 设置SetTextColor才会一直生效.客户端的DC只要被刷新就会没了. 一般这个DC只是为了计算用,绘制很少用.

oyljerry
oyljerry   Ds   Rxr 2015.07.04 22:55

需要在OnPaint或者OnDraw中进行颜色控制等,这样才会防止界面重绘刷新。

frank_20080215
frank_20080215   2015.07.05 08:19

记事本Notepad对字体的设置是很弱的。请采纳caozhy的建议

vivikey
vivikey   2015.07.07 17:25

首先你用一个死循环不停的在同一坐标输出同一串文本,不知道你到底想干嘛。
CWnd* wnd = FindWindow(NULL, L"无标题 - 记事本");

这个 无标题 - 记事本 是你自己写的窗体吗还是你想要通过代码来控制系统自带的记事本程序?
如果是你自己写的窗体,建议你在 OnDraw中写一次代码,死循环不要乱用。

Csdn user default icon
上传中...
上传图片
插入图片