一、TextOut
函数原型:
BOOL TextOut(
HDC hdc, // 设备描述表句柄
int nXStart, // 字符串开始位置的x坐标
int nYStart, // 字符串开始位置的y坐标
LPCTSTR lpString, // 要输出的字符串
int cbString // 字符串中字符的个数
);
函数功能:
该函数用当前选择的字体、背景颜色和正文颜色将一个字符串写到指定位置,可以精确输出。
二、ExtTextOut
函数原型:
BOOL ExtTextOut(
HDC hdc, // 设备描述表句柄
int X, // 字符串开始位置的x坐标
int Y, // 字符串开始位置的y坐标
UINT fuOptions, // 指定如何使用应用程序定义的矩形。如:
//ETO_CLIPPED:正文将裁剪到矩形中。
//ETO_OPAQUE:用当前的背景色来填充矩形。
CONST RECT *lprc, // 指向结构RECT的指针,其中包含了用于裁剪或作不透明物矩形的尺寸
LPCTSTR lpString, // 要输出的字符串
UINT cbCount, // 字符串中字符的个数
CONST INT *lpDx // 指向可选数组的 指针,其中数组里的值表示相邻字符单位开始处间距离。
//如果值为NULL,则使用在字符之间的默认间隔。
);
函数功能:
该函数可以提供一个可选的矩形,用于裁剪或作不透明物或两者兼有。用当前选择的字体、背景颜色和正文颜色来绘制一个字符串。
三、TabbedTextOut
函数原型:
LONG TabbedTextOut(
HDC hDC, // 设备描述表句柄
int X, // 字符串开始位置的x坐标
int Y, // 字符串开始位置的y坐标n
LPCTSTR lpString, //要输出的字符串
int nCount, // 字符串中字符的个数
int nTabPositions, //指定制表位位置数组里的值的个数
LPINT lpnTabStopPositions, // 指向数组的指针,该数组含有制表位位置(按逻辑单位),
//制表位必须按升序保存,最小的X值必须是数组的第一项。
int nTabOrigin // 指定制表符展开的开始位置的X坐标(按逻辑单位)。
);
函数功能:
该函数将一个字符串写到指定的位置,并按制表位位置数组里的值展开制表符。正文以当前选择的字体、背景色和字体写入。如果函数调用成功,返回值是字符串的尺寸(按逻辑单位)。高位字表示高度,低位字表示宽度详见:http://blog.youkuaiyun.com/deqin888/article/details/3445619
四、DrawText
函数原型:
int DrawText(
HDC hDC, // 设备描述表句柄
LPCTSTR lpString, // 要输出的字符串
int nCount, // 字符串中字符的个数如果nCount为-1,则lpString指向的字符串
//被认为是以\0结束的,DrawText会自动计算字符数
LPRECT lpRect, // 指向矩形结构RECT的指针
UINT uFormat // 正文的绘制选项,指定格式化文本的方法,如:
//DT_SINGLELINE,显示正文的同一行,回车和换行符都不能折行。
//DT_BOTTOM,将正文调整到矩形底部。此值必须和DT_SINGLELINE组合。
//DT_CENTER,使正文在矩形中水平居中。
//DT_VCENTER,使正文在矩形中垂直居中。 此值必须和DT_SINGLELINE连用
);
函数功能:
该函数在指定的矩形里写入格式化的正文,根据指定的方法对正文格式化(扩展的制表符,字符对齐、折行等)。如果函数调用成功,返回值是正文的高度(逻辑单位)。如果指定了DT_VCENTER或DT_BOTTOM,返回值是lpRect->top到绘制的正文的底部的偏移值。
五、DrawTextEx
函数原型:
int DrawTextEx(
HDC hdc, //设备描述表句柄
LPTSTR lpchText, //要输出的字符串
int cchText, //字符串中字符的个数
LPRECT lprc, // 指向矩形结构RECT的指针
UINT dwDTFormat, //正文的绘制选项,指定格式化文本的方法
LPDRAWTEXTPARAMS lpDTParams // 指向DRAWTEXTPARAMS结构的指针,该结构指定附加的格式选项,
//此参数可以为NULL。
// typedef struct {
// UINT cbSize; 结构大小
// int iTabLength; TAB 占位大小, 以字符平均宽度为单位
// int iLeftMargin; 左边距, 以字符平均宽度为单位
// int iRightMargin; 右边距, 以字符平均宽度为单位
// UINT uiLengthDrawn; 返回 DrawTextEx 函数绘制的字符个数, 包括空格
//} DRAWTEXTPARAMS, FAR *LPDRAWTEXTPARAMS;
);
函数功能:
与DrawText差不多,比它增加了一些功能。
六、PolyTextOut
函数原型:
BOOL PolyTextOut(
HDC hdc, // 设备描述表句柄
CONST POLYTEXT *pptxt, //指向POLYTEXT结构数组的指针,该数组描述将被绘制的字符串。
//数组中一每一个字符对应一个结构
int cStrings //指定pptxt数组中的POLYTEXT结构数。
);
typedef struct _POLYTEXT {
int x; //x,y定义了字串的参考位置
int y;
UINT n; // 字串的字符数量
LPCTSTR lpstr; //要输出的字串
UINT uiFlags; // 可设为下述一个或多个常数:
//ETO_CLIPPED 将输出剪切成由rcl字段指定的一个矩形
//ETO_OPAQUE 用当前背景色填充rcl矩形
RECT rcl; //用于指定约束矩形(如已经设置了ETO_CLIPPED)
int *pdx; // 指针指向一个 int 数组,包含了字串中每个字符的宽度
} POLYTEXT;
函数功能:
该函数在指定设备环境下以当前所选的字体和正文颜色绘制多个字符串