GetGlyphOutline,該函式取得被選進指定設備環境的TrueType字型的字元輪廓或點陣圖。
基本介紹
- 外文名:GetGlyphOutline
- 功能:取得TrueType字型的字元輪廓
- 原型:DWORD GetGlyphOutline
- 類別:計算機函式
函式原型,參數,注意,備註,速查,
函式原型
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成員中。
速查
Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭檔案:wingdi.h;庫檔案:gdi32.lib;Unicode:在Windows NT環境下實現為Unicode和ANSI兩種版本。