一个简单的图像按钮控件

介绍 XGlyphButton是一个通用的按钮控件,允许您在不需要ownerdraw控件的情况下在按钮上使用图像。使用XGlyphButton,您可以显示任何已安装字体中的任何符号(例如,WingDings)。 XGlyphButton解决了在按钮上使用图像的两个问题: 当在Windows XP上使用主题时,ownerdraw按钮将没有主题外观绘制。 位图按钮需要使用多个位图,而且过于复杂——特别是当您想要显示的只是一些简单的东西,比如向上或向下的箭头时。 我想感谢Geno Carman的工作,他的文章创建一个简单的图像按钮是我基于XGlyphButton。 在使用Carman的button类时,我注意到一些符号的轮廓非常粗糙。在对GDI+和其他方法进行了一些试验之后,我遇到了CLEARTYPE_QUALITY,它是LOGFONT结构中lfQuality元素的值之一。以下是MSDN对CLEARTYPE_QUALITY的解释: 如果设置,文本将使用ClearType反锯齿方法呈现(如果可能的话)。 在XP上,对于大多数翼形和符号字体中的字形,使用CLEARTYPE_QUALITY有一个非常明显的改进。在其他系统上,比如Win98(它没有ClearType技术),符号会像往常一样显示。 总之,如果您可以在已安装的字体中找到与您想要显示的图像接近的字形,那么使用XGlyphButton可能会节省一些时间,并在XP上生成漂亮的结果。缺点: 您只能使用已安装字体中的字形。 没有办法改变文本颜色,因为你必须为此做一个ownerdraw按钮。 演示 下面是XGlyphButton按钮的样子: XGlyphButton API 下面是CXGlyphButton方法的完整列表:复制Code

void SetCharSet(BYTE bCharSet);
void SetFaceName(LPCTSTR lpszFaceName);
void SetFont(LOGFONT* plf);
void SetFont(CFont* pFont);
void SetGlyph(UINT cGlyph);
void SetGlyph(LOGFONT* plf, UINT cGlyph);
void SetGlyph(CFont* pFont, UINT cGlyph);
void SetGlyph(LONG lHeight, LONG lPointSize, LONG lWeight,
              LPCTSTR lpszFaceName, UINT cGlyph);
void SetGlyph(LONG lPointSize, LPCTSTR lpszFaceName, UINT cGlyph);
void SetHeight(LONG lHeight);
void SetPointSize(LONG lPointSize);
void SetWeight(LONG lWeight);
void SetWingDingButton(UINT nButton);

如何使用 要将XGlyphButton集成到您的应用程序中,您首先需要添加以下文件到您的项目: XGlyphButton.cpp XGlyphButton.h 然后使用资源编辑器将按钮添加到对话框,并使用类向导将成员变量附加到该控件。 接下来,在对话框的头文件中包含头文件XGlyphButton.h。然后用CXGlyphButton替换CButton定义。现在可以开始使用XGlyphButton了。 修订历史 版本1.1 - 2004年3月10日 首次公开发行。 使用 这个软件被发布到公共领域。您可以自由地以您喜欢的任何方式使用它,除非您不能出售此源代码。如果您修改或扩展了它,请考虑在这里发布新的代码供大家分享。本软件是“按原样”提供的,没有明示或隐含的保证。我不承担任何损害或损失的业务,该软件可能造成的。 本文转载于:http://www.diyabc.com/frontweb/news514.html

原文地址:https://www.cnblogs.com/Dincat/p/13450834.html