MFC的小疑点,关于TEXTDRAW函数的
MFC的小问题,关于TEXTDRAW函数的。
第一段代码:
这个输出是:
退出应用程序,提示保存文档。退出 (黑色)
第二段代码:
输出结果:
为什么后面的那个退出不会变成红色呢。
例外
在字符串表里
ID_APP_EXIT 对应的字符串是:
退出应用程序,提示保存文档。\n退出 这里中间有一个\n。
------解决方案--------------------
默认的DC字体颜色用的是GetSysColor(COLOR_WINDOWTEXT),第一段没有设置字体颜色,
第二段用 dc->SetTextColor(RGB(255,0,0)); 设置了字体颜色 RGB(red, green, blue)
第一段代码:
- C/C++ code
str.LoadString(ID_APP_EXIT); pDC->TextOut(0,120,str);
这个输出是:
退出应用程序,提示保存文档。退出 (黑色)
第二段代码:
- C/C++ code
void CTextView::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default //定义一个DC对当前窗口进行操作 CDC* dc=GetDC(); //接下来应该定义一个矩形 //接下来应该使用DRAWTEXT进行输出 //1,需要设定矩形的长度变化 my_weight //2,需要使用TEXTMETRIC?获取字符串在屏幕上显示的高度 TEXTMETRIC tm; dc->GetTextMetrics(&tm); //获取文本信息 CRect rect; rect.top=120; rect.left=0; rect.bottom=120+tm.tmHeight; rect.right=my_weight; CString str; str.LoadString(ID_APP_EXIT); my_weight+=10;//设定每次增加的宽度 // rect.right+=my_weight; COLORREF poldcolor=dc->SetTextColor(RGB(255,0,0)); dc->DrawText(str,rect,DT_LEFT); CView::OnTimer(nIDEvent); ReleaseDC(dc); }
输出结果:
为什么后面的那个退出不会变成红色呢。
例外
在字符串表里
ID_APP_EXIT 对应的字符串是:
退出应用程序,提示保存文档。\n退出 这里中间有一个\n。
------解决方案--------------------
默认的DC字体颜色用的是GetSysColor(COLOR_WINDOWTEXT),第一段没有设置字体颜色,
第二段用 dc->SetTextColor(RGB(255,0,0)); 设置了字体颜色 RGB(red, green, blue)