GrayStringA 函数 (winuser.h)

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

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

另请参阅

DrawText

GetSysColor

OutputProc

绘图和绘图函数

绘图和绘图概述

SetTextColor

TabbedTextOut

TextOut