GdiplusFlat(6)绘制文本

本文详细介绍了如何使用GDI+ Flat在Win32 API中绘制文本,包括设置文本渲染模式、平滑模式,创建FontFamily、StringFormat对象,以及绘制和对齐文本的步骤。文中给出了相关函数的用途、参数说明,并提供了代码示例。
摘要由CSDN通过智能技术生成


本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/47296351

在上几篇中,我们说到了通过GdipCreateFromHDC函数将HDC(设备上下文句柄)装换成GDI+的Graphics对象,讲到了画笔和画刷的使用,并演示了何利用GDI+Flat来画图片。这回我们来研究一下如何使用GDI+Flat来画文字

还是和以前一样,我们必须自己声明GDI+Flat函数,自己定义GDI+Flat的数据结构。自己动手,丰衣足食。~~

对于画图片,其实是GDI+调用的GDI+Flat的这几个函数:GdipSetTextRenderingHint、GdipSetSmoothingMode、GdipCreateFontFamilyFromName、GdipCreateStringFormat、GdipSetStringFormatAlign、GdipCreateFont、GdipDrawString、GdipDeleteFont、GdipDeleteFontFamily、GdipDeleteStringFormat以及需要上上篇中的画刷GdipCreateSolidFill、GdipCreateLineBrush和GdipDeleteBrush。

我们把这两个函数自己声明出来!不用那些GDI+类的东西!只用C和Win32的最基本的数据类型!

typedef struct _RectF{
	float x;
	float y;
	float Width;
	float Height;
}RectF;
extern "C" int WINAPI GdipSetTextRenderingHint(int graphics,int mode);
extern "C" int WINAPI GdipSetSmoothingMode(int graphics,int smoothingMode);
extern "C" int WINAPI GdipCreateFontFamilyFromName(WCHAR* name,int* fontCollection,int** fontFamily);
extern "C" int WINAPI GdipCreateStringFormat(int formatAttributes,short language,int** format);
extern "C" int WINAPI GdipSetStringFormatAlign(int* format,int align);
extern "C" int WINAPI GdipCreateFont(int* fontFamily,float emSize, int style, int unit, int** font);
extern "C" int WINAPI GdipDrawString(int graphics,WCHAR* string,int length,int* font,RectF* layoutRect,int* stringFormat,int* brush);
extern "C" int WINAPI GdipDeleteFont(int* font);
extern "C" int WINAPI GdipDeleteStringFormat(int* format);
extern "C" int WINAPI GdipDeleteFontFamily(int* fontFamily);

 
 

函数不少,来看看都是干嘛用的:

GdipSetTextRenderingHint:设置Graphics对象的文本渲染模式

参数1:Graphics对象

参数2:文本渲染模式(MSDN:https://msdn.microsoft.com/en-us/library/ms534404(v=vs.85).aspx

{TextRenderingHintSystemDefault=0,TextRenderingHintSingleBitPerPixelGridFit=1,TextRenderingHintSingleBitPerPixel=2,TextRenderingHintAntiAliasGridFit=3,TextRenderingHintAntiAlias=4,TextRenderingHintClearTypeGridFit=5}(0:系统默认;2:最佳性能,但不保证效果;3:抗锯齿,但影响性能)

GdipSetSmoothingMode:设置Graphics对象的渲染质量

参数1:Graphics对象

参数2:平滑模式(MSDN:https://msdn.microsoft.com/en-us/library/ms534173(v=vs.85).aspx

-1:无效,0:系统默认,1:最佳性能,2:最佳质量,3:不处理,4:抗锯齿

GdipCreateFontFamilyFromName:创建一个基于指定的字体系列的FontFamily对象

参数1&#

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值