GetTextExtentPoint32A 函式 (wingdi.h)
GetTextExtentPoint32 函式會計算指定之文字字串的寬度和高度。
語法
BOOL GetTextExtentPoint32A(
[in] HDC hdc,
[in] LPCSTR lpString,
[in] int c,
[out] LPSIZE psizl
);
參數
[in] hdc
裝置內容的句柄。
[in] lpString
指定文字字串之緩衝區的指標。 字串不需要以 Null 結束,因為 c 參數會指定字串的長度。
[in] c
lpString 所指向的字串長度。
[out] psizl
以邏輯單位接收字串維度 之 SIZE 結構的指標。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。
備註
GetTextExtentPoint32 函式會使用目前選取的字型來計算字串的維度。 寬度和高度會以邏輯單位計算,而不考慮任何裁剪。
由於某些裝置會 kern 字元,字串中字元的範圍總和可能不等於字串的範圍。
計算的字串寬度會考慮 SetTextCharacterExtra 函式所設定的字元間距,以及 SetTextJustification 所設定的對齊方式。 這適用於在畫面上顯示和列印。 不過,如果在 ExtTextOut 中設定 lpDx,GetTextExtentPoint32 不會考慮字元間距或理由。 此外,針對EMF,列印結果一律會將字元間距和理由納入考慮。
處理在螢幕上顯示的文字時,導出字串寬度會考慮 SetTextCharacterExtra 函式所設定的字元間距,以及 SetTextJustification 所設定的理由。 不過,如果在 ExtTextOut 中設定 lpDx,GetTextExtentPoint32 不會考慮字元間距或理由。 不過,使用 EMF 列印時:
- 雖然 GetTextExtentPoint32 會將它 納入考慮,但列印結果會忽略字元間距。
- 雖然 GetTextExtentPoint32 會忽略它,但列印結果會將理由納入考慮。
GetTextExtentPoint32 不會考慮 \n 在計算文字字串高度時, (新的行) 或 “\r\n” (換行字元和新的行) 字元。
範例
如需範例,請參閱 在相同線條上從不同字型繪製文字。
注意
wingdi.h 標頭會將 GetTextExtentPoint32 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | wingdi.h (包含 Windows.h) |
程式庫 | Gdi32.lib |
Dll | Gdi32.dll |