词条 | GetGlyphOutline |
释义 | 函数功能:该函数取得被选进指定设备环境的TrueType字体的字符轮廓或位图。 函数原型:DWORD GetGlyphOutline(HDC hdc, UINT uChar, UINT uFormat, LPGLYPHMETRICS lpgm, DWORD cbBuffer, LPVOID lpvBuffer, CONST MAT2 *lpmat2); 参数: hdc:设备环境句柄。 uChar:指定被返回其数据的字符。 uFormat:指定函数取得的数据的格式。可用下列值之一:各值含义为: GGO_BITMAP:函数获得字形位图。要得到善于内存分配的信息,参见后面备注部分。 GGO_NATIVE:函数获得光栅器(rasterrizer)的本地格式的曲线数据点,并使用字体的设计单位,当指定了此值,由lpMatrix指定的任何变换都被忽略。 GGO_METRICS:函数只获得由lpgm指定的GLYPHMETRICS结构。其余缓冲区被忽徊,此值影响函数失败时返回值的含义,参见后面的返回值部分。 GGO_GRAY2_BITMAP:函数获得含5级灰色的字形位图。 GGO_GRAY4_BITMAP:函数获得含17级灰色的字形位图。 GGO_GRAY8_BITMAP:函数获得含65级灰色的字形位图。 注意:对GGO_GRAYnBITMAP值,函数获得n*n+1级灰色的字形位图。 lpgm:指向结构GLYPHMETRICS的指针,用于描述字表在字符单元的放置。 cbBuffer:指向定缓冲区的大小,该缓冲区用于复制轮廓字符的信息。如果此值为零,函数返回需要的缓冲区大小。 lpvBuffer:指向缓冲区的指针,该缓冲区用于复制轮廓字符的信息,如果此值为NULL,函数返回需要的缓冲区大小。 lpmat2:指向MAT2结构的指针,该结构为字符信息转换矩阵。 返回值:如果指定了GGO_BITMAP, GGO_GRAY2_BITMAP, GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP,或GGO_NATIVE值且函数调用成功,返回值将大于0,否则,返回值是GDI_ERROR。如果指定了上述之一值,但缓冲区或地址是0,则返回需要的缓冲区的字节数。 如果GGO_METRICS被指定且函数调用失败,返回值是GDI_ERROR。 Windows NT:若想获得更多错误信息,请调用GetLastError函数。 备注:GetGlyphOutline返回的字形轮廓是一种配有网络的字形(配有网络的字形是指一种被修改的字形,使其点阵图尽可能地与字形的原始设计一致)。如果一个应用程序需要一种无修改的字形轮廓,应该在那些大小等于字体的em单位的字体中要求一个字符的字形轮廓,字体的em单位值存在于结构OUTLINETEXTMETRIC的otmEMSquare成员中。 由GetGlyphOutline指定GGO_BITMAP返回的字形位图是一种双字对齐、面向行的单色位图,当指定GGO_GRAY2_BITMAP,返回的位图是一种双字对齐、面向行的,其值在0-4之间的字节数组。当GGO_GRAY4_BITMAP指定时,返回的位图是一种双字对齐、面向行的,其值在0-16之间的字节数组。当指定GGO_GRAY8_BITMAP时,返回的位图是一种双字对齐,面向行的,其值在0-64之间的字节数组。应用程序可以指定lpMatrix参数里的2-对-2转换矩阵来将以位图格式获得的字符旋转。 速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:wingdi.h;库文件:gdi32.lib;Unicode:在Windows NT环境下实现为Unicode和ANSI两种版本。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。