Share via


GrayStringA 函式 (winuser.h)

GrayString 函式會在指定的位置繪製灰色文字。 函式會藉由將文字複製到記憶體位圖、呈現點陣圖灰色,然後將點陣圖複製到畫面來繪製文字。 不論選取的筆刷和背景為何,函式都會讓文字呈現灰色。 GrayString 會使用目前為指定裝置內容選取的字型。

如果lpOutputFuncparameter 為 NULL,GDI 會使用 TextOut 函式,而且假設lpDataparameter 是要輸出之字元字串的指標。 例如,如果 TextOut (無法處理要輸出的字元,字串會儲存為位圖) ,應用程式必須提供自己的輸出函式。

語法

BOOL GrayStringA(
  [in] HDC            hDC,
  [in] HBRUSH         hBrush,
  [in] GRAYSTRINGPROC lpOutputFunc,
  [in] LPARAM         lpData,
  [in] int            nCount,
  [in] int            X,
  [in] int            Y,
  [in] int            nWidth,
  [in] int            nHeight
);

參數

[in] hDC

裝置內容的句柄。

[in] hBrush

要用於灰色之筆刷的句柄。 如果此參數為 NULL,則文字會以用來繪製視窗文字的相同筆刷呈現灰色。

[in] lpOutputFunc

將繪製字串之應用程式定義函式的指標,或者,如果要使用 TextOut 來繪製字串,則為 NULL 指標。 如需詳細資訊,請參閱 OutputProc 回呼函式。

[in] lpData

要傳遞至輸出函式之數據的指標。 如果 lpOutputFunc 參數為 NULL,lpData 必須是要輸出之字串的指標。

[in] nCount

要輸出的字元數。 如果 nCount 參數為零, GrayString 會計算字串的長度, (假設 lpData 是字元串) 的指標。 如果 nCount 為 1, 且 lpOutputFunc 所指向的函式會傳回 FALSE,則會顯示影像,但不會呈現灰色。

[in] X

括住字串之矩形開始位置的裝置 X 座標。

[in] Y

括住字串之矩形開始位置的裝置 Y 座標。

[in] nWidth

包含字串之矩形的寬度,以裝置單位為單位。 如果此參數為零, GrayString 會計算區域的寬度,假設 lpData 是字串的指標。

[in] nHeight

括住字串之矩形的高度,以裝置單位為單位。 如果此參數為零, GrayString 會計算區域的高度,假設 lpData 是字串的指標。

傳回值

如果繪製字串,則傳回值為非零。

如果 TextOut 函數或應用程式定義的輸出函式傳回零,或記憶體不足而無法建立灰色的記憶體位圖,則傳回值為零。

備註

若未呼叫 GrayString,應用程式可以在支援純灰色色彩的裝置上繪製灰色字串。 系統色彩COLOR_GRAYTEXT是用來繪製停用文字的純灰色系統色彩。 應用程式可以呼叫 GetSysColor 函式,以擷取COLOR_GRAYTEXT的色彩值。 如果色彩不是零 (黑色) ,應用程式可以呼叫 SetTextColor 函式,將文字色彩設定為色彩值,然後直接繪製字串。 如果擷取的色彩為黑色,應用程式必須將 GrayString 呼叫為文字灰色。

注意

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

規格需求

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

另請參閱

DrawText

GetSysColor

OutputProc

繪製和繪製函式

繪製和繪圖概觀

SetTextColor

TabbedTextOut

TextOut