I was looking for a way to show text in different fonts one day, but I couldn't find any code that fitted the purpose for what I needed, so I decided to write a class for it. Since the class has been an asset to me when programming dialog-based applications, I've decided to release it here.
I know that this class isn't perfect, because there's always something that can be done more efficient; but if you have got any complaints or remarks, then constructive criticism is more than welcome.
CFontStatic: The class
CFontStatic class is (as the name reveals) derived from
CStatic but has three slight differences: the functions
void CFontStatic::SetFontStyle(DWORD dwStyle)
This function is, in most of the cases, only used indirectly. It takes a
DWORD as an argument. The different kind of styles are represented by defines that you can find in the section "The style defines".
void CFontStatic::SetBackground(DWORD dwBgColor)
This function sets the background color of the client rect. If this isn't used, the text's background will be transparent. You set the color by using the macro RGB. I.e., RGB(255,0,255).
void CFontStatic::SetFontStatic(CString szFont,
int nSize, DWORD dwColor, DWORD dwStyle)
This is the main function in the class and it is used to set the font.
This is the font's name. I.e., "Arial".
This is the font's size in pixels.
The color of the text.
The style of the text. See the section "The style defines" for information.
The style defines
There are different kinds of styles that can be used:
Declare an instance of
CStatic and locate the declaration in the .h file. Change the declaration from
CFontStatic. Don't forget to include FontStatic.h in your project.
Let's use the font "Arial", size 25, and set the color of the text to white. Also make the text italic, bold, and antialiased.
FS_ITALIC | FS_BOLD | FS_ANTIALIAS);
Or if you want to use the default font with no background color:
m_example.SetFontStyle(FS_BOLD | FS_UNDERLINED);
Or if you want to use the font "MS Sans Serif" with the color red and center it in the rect:
m_example.SetFontStatic("MS Sans Serif",12,
Or if... You get the point.
Now you may want to change the text of the static control. This is done as usual with the
Corrected some minor spelling-errors.
Changed some minor errors and added an enlarged version of the screenshot.
This article was written.