CFontStatic






4.34/5 (22投票s)
一个简单的方法来改变 CStatic 的外观。
引言
有一天,我正在寻找一种以不同字体显示文本的方法,但是我找不到任何适合我需求的的代码,所以我决定为此编写一个类。由于该类在基于对话框的应用程序编程中对我有很大帮助,因此我决定在此处发布它。
我知道这个类并不完美,因为总有可以做得更有效率的地方;但是如果您有任何意见或建议,那么非常欢迎建设性的批评。
CFontStatic: 该类
CFontStatic
类(顾名思义)派生自 CStatic
,但有三个细微的差异:函数 SetFontStyle
、SetBackground
和 SetFontStatic
。
SetFontStyle
void CFontStatic::SetFontStyle(DWORD dwStyle)
在大多数情况下,此函数仅间接使用。 它接受一个 DWORD
作为参数。 不同的样式类型由您可以在“样式定义”部分中找到的定义来表示。
SetBackground
void CFontStatic::SetBackground(DWORD dwBgColor)
此函数设置客户端矩形的背景颜色。 如果不使用此函数,文本的背景将是透明的。 您可以使用宏 RGB 设置颜色。 例如,RGB(255,0,255)。
SetFontStatic
void CFontStatic::SetFontStatic(CString szFont, int nSize, DWORD dwColor, DWORD dwStyle)
这是类中的主要函数,用于设置字体。
CString szFont
这是字体的名称。 例如,“Arial”。
int nSize
这是字体的大小,以像素为单位。
DWORD dwColor
文本的颜色。
DWORD dwStyle
文本的样式。 有关信息,请参见“样式定义”部分。
样式定义
可以使用不同类型的样式
FS_BOLD
FS_ITALIC
FS_UNDERLINED
FS_STRIKETHROUGH
FS_ANTIALIAS
FS_CENTER
FS_LEFT
FS_RIGHT
使用 CFontStatic
步骤 1
声明一个 CStatic
的实例,并在 .h 文件中找到该声明。 将声明从 CStatic
更改为 CFontStatic
。 不要忘记在您的项目中包含 FontStatic.h。
第二步
让我们使用字体“Arial”,大小为 25,并将文本的颜色设置为白色。 此外,使文本倾斜、粗体和抗锯齿。
// Set the font to arial, size 25 and the color white. // The text should be italic, bold and antialiased. m_example.SetFontStatic("Arial",25,RGB(255,255,255), FS_ITALIC | FS_BOLD | FS_ANTIALIAS); // Set the background of the rect to black m_example.SetBackground(RGB(0,0,0));
或者,如果您想使用默认字体且没有背景颜色
// The text should be bold and underlined.
m_example.SetFontStyle(FS_BOLD | FS_UNDERLINED);
或者,如果您想使用字体“MS Sans Serif”,颜色为红色,并将其在矩形中居中
// The text should now be centered and red. m_example.SetFontStatic("MS Sans Serif",12, RGB(255,0,0),FS_CENTER)
或者... 你明白了。 ;)
步骤 3
现在您可能想要更改静态控件的文本。 这可以使用 SetWindowText
函数像往常一样完成。
// Set the text in the CFontStatic m_example.SetWindowText("Hello World!");
历史
- 2004-06-21
修正了一些小的拼写错误。
- 2004-06-12
更改了一些小错误并添加了屏幕截图的放大版本。
- 2004-06-11
本文已撰写。