Функция DrawState выводит на экран изображение и применяет визуальные эффекты, чтобы указать состояние, такое как "отключено" (недоступно) или состояние по умолчанию.
BOOL DrawState( HDC hdc, // дескриптор контекста устройства HBRUSH hbr, // дескриптор кисти DRAWSTATEPROC lpOutputFunc, // функция обратного вызова LPARAM lData, // информация об изображении WPARAM wData, // дополнительная информация об изображении int x, // горизонтальное расположение int y, // вертикальное расположение int cx, // ширина изображения int cy, // высота изображения UINT fuFlags // тип и состояние изображения ); |
[in] Дескриптор контекста устройства, чтобы рисовать в нем.
hbr[in] Дескриптор кисти используемой для рисования изображения, если состояние, определенное параметром fuFlags, является DSS_MONO. Этот параметр игнорируется для других состояний.
lpOutputFunc[in] Указатель на определяемую программой функцию обратного вызова, использованную для визуализации изображения. Этот параметр требуется, если тип изображения в параметре fuFlags - DST_COMPLEX. Параметр является дополнительным (необязательным) и может быть NULL, если тип изображения - DST_TEXT. Для всех других типов изображения этот параметр игнорируется. Дополнительную информацию о функции обратного вызова см. в описании функции DrawStateProc.
lData[in] Определяет информацию об изображении. Значение этого параметра зависит от типа изображения.
wData[in] Определяет информацию об изображении. Значение этого параметра зависит от типа изображения. Однако, он нуль для использования функции DrawStateProc.
x[in] Устанавливает горизонтальное расположение, в единицах устройства, в котором рисуется изображение.
y[in] Устанавливает вертикальное расположение, в единицах устройства, в котором рисуется изображение.
cx[in] Определяет ширину изображения, в единицах устройства. Этот параметр требуется, если тип изображения - DST_COMPLEX. В противном случае, он может быть нуль, чтобы вычислить ширину изображения.
cy[in] Определяет высоту изображения, в единицах устройства. Этот параметр требуется, если тип изображения - DST_COMPLEX. В противном случае, он может быть нуль, чтобы вычислить высоту изображения.
fuFlags[in] Определяет тип и состояние изображения. Этот параметр может быть один из нижеследующих значений типа.
Значение (тип) |
Предназначение |
|
---|---|---|
DST_BITMAP | Изображение - точечный рисунок. Параметр lData - дескриптор растрового рисунка.
|
|
DST_COMPLEX | Изображение определяется приложением. Чтобы визуализировать изображение, функция DrawState вызывает функцию обратного вызова заданную параметром lpOutputFunc. | |
DST_ICON | Изображение - значок. Параметр lData - дескриптор значка. | |
DST_PREFIXTEXT | Изображение - текст, который может содержать в себе мнемонический код акселератора. DrawState интерпретирует префиксный символ амперсанда (&), как директиву, чтобы подчеркнуть символ, который следует за ним. Параметр lData - указатель на строку, а параметр wData устанавливает ее длину. Если wData - нуль, строка должна быть завершена символом конца строки ('\0'). | |
DST_TEXT | Изображение - текст. Параметр lData - указатель на строку, а параметр wData устанавливает длину. Если wData - нуль, строка должна быть завершена символом конца строки ('\0'). |
Этот параметр может также быть одним из нижеследующих значений состояния.
Значение (состояние) |
Предназначение |
---|---|
DSS_DISABLED | Делает изображение выпуклым. |
DSS_HIDEPREFIX | Windows 2000/XP: Игнорирует префиксный символ амперсанд (&) в тексте, таким образом буква (символ), которая следует за ним, не будет подчеркнута. Это должно использоваться с флажком DST_PREFIXTEXT. |
DSS_MONO | Рисует изображение, используя кисть, установленную параметром hbr. |
DSS_NORMAL | Рисует изображение без какой-либо модификации. |
DSS_PREFIXONLY | Windows 2000/XP: Рисует только подчеркивающую линию в позиции буквы (символа) после префиксного символа амперсанда (&). Никакого текста в строке не рисуется. Это должно использоваться с флажком DST_PREFIXTEXT. |
DSS_RIGHT | Выравнивает текст по правой стороне. |
DSS_UNION | Размывает изображение. |
Если функция завершается успешно, возвращаемое значение - не нуль.
Если функция завершается ошибкой, возвращаемое значение - нуль.
Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Windows 95/98/Me: DrawStateW поддерживается Microsoft Layer для Unicode. Чтобы использовать это, Вы должны добавить некоторые файлы к своему приложению, как указано в Microsoft Layer для Unicode в среде Windows 95/98/Me.
Обзор Окрашивание и рисование, Функции окрашивания и рисования, DrawStateProc
Размещение и совместимость DrawState |
||
К | Windows Vista | Да |
л | Windows XP | Да |
и | Windows 2000 Professional | Да |
е | Windows NT Workstation | Да версии 4.0 и выше |
н | Windows Me | Да |
т | Windows 98 | Да |
Windows 95 | Да | |
С | Windows Server 2008 | Да |
е | Windows Server 2003 | Да |
р | Windows 2000 Server | Да |
в | Windows NT Server | Да версии 4.0 и выше |
е | ||
р | ||
Используемая библиотека | User32.lib | |
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в | Winuser.h | |
- включено в | Windows.h | |
Unicode | Реализуется как версии Unicode и ANSI в среде Windows NT/2000/XP. Также поддерживается Microsoft Layer для Unicode. | |
Замечания по платформе | Не имеется |