GrayString函数在指定位置绘制灰色文本。该函数通过将文本复制到内存位图中,使位图变灰,然后将位图复制到屏幕来绘制文本。无论选定的画笔和背景如何,该函数都会灰化文本。GrayString使用当前为指定的设备上下文选择的字体。
如果【lpOutputFunc】参数为NULL,则GDI使用TextOut函数,并且【的lpData】参数被假定为要输出的字符串的指针。如果要输出的字符不能由TextOut处理(例如,字符串作为位图存储),应用程序必须提供自己的输出功能。
BOOL GrayString(
HDC 【hDC】, | //处理设备上下文 |
HBRUSH 【HBRUSH】, | //处理画笔变灰 |
GRAYSTRINGPROC 【lpOutputFunc】, | //指向回调函数的指针 |
LPARAM 【的lpData】, | //指向应用程序定义数据的指针 |
INT 【NCOUNT】, | //要输出的字符数 |
INT 【X】, | // 水平位置 |
INT 【Y】, | //垂直位置 |
INT 【nWidth】, | // width |
INT 【nHeight参数】 | // height |
); |
参数
【hDC】
标识设备上下文。
【HBRUSH】
标识用于变灰的画笔。如果此参数为NULL,则文本将与用于绘制窗口文本的相同画笔呈灰色。
【lpOutputFunc】
指向将绘制字符串的应用程序定义的函数,或者如果要使用TextOut来绘制字符串,则它是一个NULL指针。有关详细信息,请参阅OutputProc回调函数。
【的lpData】
指定要传递给输出函数的数据的指针。如果【lpOutputFunc】参数为NULL,则【的lpData】必须是要输出的字符串的指针。
【NCOUNT】
指定要输出的字符数。如果【NCOUNT】参数为零,则GrayString计算字符串的长度(假设【的lpData】是指向字符串的指针)。如果【NCOUNT】为-1,并且【lpOutputFunc】指向的函数返回FALSE,则显示图像,但不显示灰色。
【X】
指定包围字符串的矩形起始位置的设备x坐标。
【Y】
指定包围字符串的矩形的起始位置的设备y坐标。
【nWidth】
指定围绕字符串的矩形的宽度(以设备为单位)。如果此参数为零,则GrayString计算区域的宽度,假设【的lpData】是指向字符串的指针。
【nHeight参数】
指定围绕字符串的矩形的高度(以设备为单位)。如果此参数为零,则GrayString计算区域的高度,假设【的lpData】是指向字符串的指针。
返回值
如果绘制字符串,则返回值不为零。
如果TextOut函数或应用程序定义的输出函数返回零,或者没有足够的内存创建内存位图进行灰色,则返回值为零。
备注
不调用GrayString,应用程序可以在支持实体灰色的设备上绘制灰色字符串。系统颜色COLOR_GRAYTEXT是用于绘制禁用文本的纯灰色系统颜色。应用程序可以调用GetSysColor函数来检索COLOR_GRAYTEXT的颜色值。如果颜色不是零(黑色),应用程序可以调用SetTextColor函数将文本颜色设置为颜色值,然后直接绘制字符串。如果检索到的颜色为黑色,则应用程序必须调用GrayString来灰化文本。
也可以看看
DrawText, GetSysColor, OutputProc, SetTextColor, TabbedTextOut, TextOut