GetTabbedTextExtentA 函式 (winuser.h)

GetTabbedTextExtent函式會計算字元字串的寬度和高度。 如果字串包含一或多個定位字元,字串的寬度會以指定的定位停駐點為基礎。 GetTabbedTextExtent函式會使用目前選取的字型來計算字串的維度。

語法

DWORD GetTabbedTextExtentA(
  [in] HDC       hdc,
  [in] LPCSTR    lpString,
  [in] int       chCount,
  [in] int       nTabPositions,
  [in] const INT *lpnTabStopPositions
);

參數

[in] hdc

裝置內容的控制碼。

[in] lpString

字元字串的指標。

[in] chCount

文字字串的長度。 如果是 ANSI 函式,它是 BYTE 計數,而 Unicode 函式則是 WORD 計數。 請注意,針對 ANSI 函式,SBCS 字碼頁中的字元會各自採用一個位元組,而 DBCS 字碼頁中的大部分字元則需要兩個位元組;針對 Unicode 函式,目前大部分定義的 Unicode 字元 (基本多語平面 (BMP) ) 中的 Unicode 字元是一個 WORD,而 Unicode 代理是兩個 WORD。

[in] nTabPositions

lpnTabStopPositions參數所指向之陣列中的定位停駐點位置數目。

[in] lpnTabStopPositions

陣列的指標,包含裝置單位中的定位停駐點位置。 定位停駐點必須依遞增順序排序;最小的 x 值應該是陣列中的第一個專案。

傳回值

如果函式成功,則傳回值是以邏輯單位表示字串的維度。 高度是高序單字,寬度是低序字。

如果函式失敗,則傳回值為 0。 如果hDC無效,且nTabPositions小於 0,GetTabbedTextExtent將會失敗。

備註

目前的裁剪區域不會影響 GetTabbedTextExtent 函式所傳回的寬度和高度。

由於某些裝置不會將字元放在一般儲存格陣列中, (也就是說,它們會將字元) ,所以字串中字元的範圍總和可能不等於字串的範圍。

如果 nTabPositions 參數為零,且 lpnTabStopPositions 參數為 Null,則索引標籤會展開為平均字元寬度的八倍。

如果 nTabPositions 為 1,定位停駐點會以 lpnTabStopPositions 指向的陣列中第一個值所指定的距離分隔。

注意

winuser.h 標頭會將 GetTabbedTextExtent 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winuser.h (包含 Windows.h)
程式庫 User32.lib
Dll User32.dll

另請參閱

字型和文字函式

字型和文字概觀

GetTextExtentPoint32

TabbedTextOut