GrayString

The GrayString function draws gray text at the specified location. The function draws the text by copying it into a memory bitmap, graying the bitmap, and then copying the bitmap to the screen. The function grays the text regardless of the selected brush and background. GrayString uses the font currently selected for the specified device context.

If the lpOutputFunc parameter is NULL, GDI uses the TextOut function, and the lpData parameter is assumed to be a pointer to the character string to be output. If the characters to be output cannot be handled by TextOut (for example, the string is stored as a bitmap), the application must supply its own output function.

BOOL GrayString(
  HDC hDC,        // handle to the device context
  HBRUSH hBrush,  // handle to the brush for graying
  GRAYSTRINGPROC lpOutputFunc,
                  // pointer to the callback function
  LPARAM lpData,  // pointer to application-defined data
  int nCount,     // number of characters to output
  int X,          // horizontal position
  int Y,          // vertical position
  int nWidth,     // width
  int nHeight     // height
);
 

Parameters

hDC
Handle to the device context.
hBrush
Handle to the brush to be used for graying. If this parameter is NULL, the text is grayed with the same brush that was used to draw window text.
lpOutputFunc
Pointer to the application-defined function that will draw the string, or, if TextOut is to be used to draw the string, it is a NULL pointer. For details, see the OutputProc callback function.
lpData
Specifies a pointer to data to be passed to the output function. If the lpOutputFunc parameter is NULL, lpData must be a pointer to the string to be output.
nCount
Specifies the number of characters to be output. If the nCount parameter is zero, GrayString calculates the length of the string (assuming lpData is a pointer to the string). If nCount is –1 and the function pointed to by lpOutputFunc returns FALSE, the image is shown but not grayed.
X
Specifies the device x-coordinate of the starting position of the rectangle that encloses the string.
Y
Specifies the device y-coordinate of the starting position of the rectangle that encloses the string.
nWidth
Specifies the width, in device units, of the rectangle that encloses the string. If this parameter is zero, GrayString calculates the width of the area, assuming lpData is a pointer to the string.
nHeight
Specifies the height, in device units, of the rectangle that encloses the string. If this parameter is zero, GrayString calculates the height of the area, assuming lpData is a pointer to the string.

Return Values

If the string is drawn, the return value is nonzero.

If either the TextOut function or the application-defined output function returned zero, or there was insufficient memory to create a memory bitmap for graying, the return value is zero.

Windows NT: To get extended error information, call GetLastError.

Remarks

Without calling GrayString, an application can draw grayed strings on devices that support a solid gray color. The system color COLOR_GRAYTEXT is the solid-gray system color used to draw disabled text. The application can call the GetSysColor function to retrieve the color value of COLOR_GRAYTEXT. If the color is other than zero (black), the application can call the SetTextColor function to set the text color to the color value and then draw the string directly. If the retrieved color is black, the application must call GrayString to gray the text.

QuickInfo

  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in winuser.h.
  Import Library: Use user32.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows NT.

See Also

Painting and Drawing Overview, Painting and Drawing Functions, DrawText, GetSysColor, OutputProc, SetTextColor, TabbedTextOut, TextOut