GDIObjective C文本Visual C++ 7.1Visual C++ 8.0Visual Studio .NET 2003Windows 2003Windows 2000Windows XPXML中级开发Visual StudioWindowsC++
一个强大而灵活的文本绘制函数,具有简单的标记标签






4.65/5 (19投票s)
2004年9月1日
2分钟阅读

68737

1478
此函数使您可以轻松绘制花哨的文本。
引言
您是否曾经想要一个更强大和灵活的文本绘制函数? 如果你想绘制如下的文本,你需要调用许多dc
函数。
Hello,World.
您应该调用 SetBkColor
来更改文本颜色,并调用 SelectObject
来更改文本字体。 也许你的代码看起来像这样
create a bold font
select a bold font
draw "he"
select a original font
delete a bold font object
draw "llo, "
change a text color red.
draw "W"
change a text color original.
draw "orld."
多么无聊的代码啊! 此外,如果您使用上述代码,您很容易犯错误。 最后,我决定编写一个支持一些简单标记标签的函数。 本文将向您展示如何使用它。
函数描述
int FmtUtil::TextOut(CDC *pDC, CString &str, int x=0, int y=0, int nSpace=0);
pDC
[in] 设备上下文的句柄
str
[in] 要绘制的
string
x
[in] 指定逻辑坐标中的 x 坐标
是
[in] 指定逻辑坐标中的 y 坐标
nSpace
[in] 指定行之间的间距
此函数支持以下像 HTML 一样的简单标签。 请注意,str
中包含的标签由此函数解释,并且不会绘制。 因此,如果你想绘制 [ 或 ],你应该使用 [[ 或 ]]。
[B][/B]
此标签使字体变为粗体。
[I][/I]
此标签使字体变为斜体。
[U][/U]
此标签使字体带有下划线。
[Cxxxxxx][/C]
此标签更改字体颜色。 xxxxxx 是一个颜色代码。 这是一个十六进制值,例如,红色是 FF0000。
Using the Code
如果你想在你的项目中使用它 - 请按照以下简单步骤。
- 将 fmttextout.h 和 fmttextout.cpp 文件添加到您的项目。
- 现在你可以通过调用
FmtUtil()->TextOut
来绘制文本。
以下代码是演示项目中使用的 WM_PAINT
消息处理程序
void CChildView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Do not call CWnd::OnPaint() for painting messages
CString str("Hello, [/B][/B][/B]W[/B][CFE09FF]or[/C][U]ld[/U]
[I]Shin, YoungJin[/I]\r\naskdfljaslkfjaslkfjlkewrlkewr");
FmtUtil()->TextOut(&dc, str, 10, 10, 8);
}
历史
- 2004 年 8 月 30 日 - 初始版本
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。