Функция DrawState


Функция DrawState выводит на экран изображение и применяет визуальные эффекты, чтобы указать состояние, такое как "отключено" (недоступно) или состояние по умолчанию.

Синтаксис

BOOL DrawState(
  HDC hdc,                     // дескриптор контекста устройства
  HBRUSH hbr,                  // дескриптор кисти
  DRAWSTATEPROC lpOutputFunc,  // функция обратного вызова
  LPARAM lData,                // информация об изображении
  WPARAM wData,                // дополнительная информация об изображении
  int x,                       // горизонтальное расположение
  int y,                       // вертикальное расположение
  int cx,                      // ширина изображения
  int cy,                      // высота изображения
  UINT fuFlags                 // тип и состояние изображения
);

Параметры

hdc

[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 Размывает изображение.

Все состояния, кроме DSS_NORMAL, преобразуют изображение в монохромное перед тем, как применить визуальный эффект.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение - не нуль.

Если функция завершается ошибкой, возвращаемое значение - нуль.

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.
Замечания по платформе Не имеется

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz