ExtTextOut
ExtTextOut函数可以提供一个可供选择的矩形,用当前选择的字体、背景颜色和正文颜色来绘制一个字符串。来裁剪或者作为不透明物又或者两者兼有。
函数原型
BOOL ExtTextOut(HDChdc, int X, int Y, UINT fuOptions, CONST RECT *lprc, LPCTSTR lpString, UINT cbCount, CONST INT *lpDx);
参数
hdc:设备环境句柄。
X:指定用于放置字符串的基准点的逻辑X坐标。
Y:指定用于放置字符串的基准Y坐标。
fuOptions:指定如何使用应用程序定义的矩形,此参数可为下列值的组合,各值含义为:
ETO_CLIPPED:正文将裁剪到矩形中。
ETO_GLYPH_INDEX:LpString指向由 GetCharacterPlacement返回的 数组,如果没有进一步的特殊语言处理的要求,则此 数组直接由GDI解析,仅对字体应用符号索引,但此标志可用于 位图和向量字体,以表示不必做进一步的语言处理,GDI应用直接处理此字符串。
ETO_OPAQUE:用当前的背景色来填充矩形。
ETO_RTLREADING:在Middle_Eastern Windows中如果指定了此值,且Hebrew或Arabic字体被选进设备环境,则此字符串用以从右到左的阅读顺序来输出。如果没有指定此值,则字符串以从左到右的顺序输出。在SetTextAlign中设置TA_RTLREADING值可获得同样的效果。为 向后兼容,此值作为保留值。
ETO_GLYPH_INDEX和ETO_RTLREADING值不能在一起使用。因为ETO_GLYPH_INDEX表示所有的语言处理已经完成,函数就会忽略被指定的ETO_RTLREADING值。
注意,尽管对 光栅字体而言,字符串被认为是8位值的数据,但所有的符号索引都是16位值。
lprc:指向结构RECT的 指针,其中包含了用于裁剪或作不透明物矩形的尺寸。
lpString:指向将被绘制的字符串的 指针,此字符串不必是以\0结束的,因为cbCount指定了其长度。
cbCount:指定字符串的字符数。
lpDx:指向可选数组的 指针,其中数组里的值表示相邻字符单位开始处间距离。例如,lpDx逻辑单元分离了字符单元i和字符单元celli+1的开始点。
返回值:如果字符串被绘制,返回值非零,如果 函数调用失败,返回值是0。