GrayStringA 函数 (winuser.h)

GrayString 函数在指定位置绘制灰色文本。 该函数通过将文本复制到内存位图、灰显位图,然后将位图复制到屏幕来绘制文本。 无论所选画笔和背景如何,函数都会灰显文本。 GrayString 使用当前为指定设备上下文选择的字体。

如果 thelpOutputFuncparameter NULL,GDI 将使用 TextOut 函数,并且假定 thelpDataparameter 是指向要输出的字符串的指针。 如果 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 参数 NULLlpData 必须是指向要输出的字符串的指针。

[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 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll

另请参阅

DrawText

GetSysColor

OutputProc

绘制和绘制函数

绘画和绘图概述

SetTextColor

TabbedTextOut

TextOut