Поделиться через


Структура WNDCLASSEXA (winuser.h)

Содержит сведения о классе окна. Он используется с функциями RegisterClassEx и GetClassInfoEx.

Структура WNDCLASSEX аналогична структуре WNDCLASS. Существует два различия. WNDCLASSEX включает элемент cbSize, указывающий размер структуры и элемент hIconSm, содержащий дескриптор, связанный с классом окна.

Синтаксис

typedef struct tagWNDCLASSEXA {
  UINT      cbSize;
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCSTR    lpszMenuName;
  LPCSTR    lpszClassName;
  HICON     hIconSm;
} WNDCLASSEXA, *PWNDCLASSEXA, *NPWNDCLASSEXA, *LPWNDCLASSEXA;

Члены

cbSize

Тип: UINT

Размер этой структуры в байтах. Установите для этого элемента значение sizeof(WNDCLASSEX). Перед вызовом функции GetClassInfo Ex необходимо задать этот член перед вызов ом функции GetClassInfoEx.

style

Тип: UINT

Стили классов. Этот элемент может быть любым сочетанием стилей классов .

lpfnWndProc

Тип: WNDPROC

Указатель на процедуру окна. Для вызова процедуры окна необходимо использовать функцию CallWindowProc. Дополнительные сведения см. в разделе WindowProc.

cbClsExtra

Тип: int

Количество дополнительных байтов, выделяемых после структуры класса окна. Система инициализирует байты до нуля.

cbWndExtra

Тип: int

Количество дополнительных байтов, выделяемых после экземпляра окна. Система инициализирует байты до нуля. Если приложение использует WNDCLASSEX для регистрации диалогового окна, созданного с помощью директивы класса в файле ресурсов, он должен задать для этого элемента значение DLGWINDOWEXTRA.

hInstance

Тип: HINSTANCE

Дескриптор экземпляра, содержащего процедуру окна для класса.

hIcon

Тип: HICON

Дескриптор значка класса. Этот элемент должен быть дескриптором ресурса значка. Если этот элемент NULL, система предоставляет значок по умолчанию.

hCursor

Тип: HCURSOR

Дескриптор курсора класса. Этот элемент должен быть дескриптором ресурса курсора. Если этот элемент NULL, приложение должно явно задать фигуру курсора при каждом переходе мыши в окно приложения.

hbrBackground

Тип: HBRUSH

Дескриптор фоновой кисти класса. Этот элемент может быть дескриптором кисти, используемой для рисования фона, или это может быть значение цвета. Значение цвета должно быть одним из следующих стандартных системных цветов (значение 1 должно быть добавлено в выбранный цвет). Если задано значение цвета, необходимо преобразовать его в один из следующих типов HBRUSH:

  • COLOR_ACTIVEBORDER
  • COLOR_ACTIVECAPTION
  • COLOR_APPWORKSPACE
  • COLOR_BACKGROUND
  • COLOR_BTNFACE
  • COLOR_BTNSHADOW
  • COLOR_BTNTEXT
  • COLOR_CAPTIONTEXT
  • COLOR_GRAYTEXT
  • COLOR_HIGHLIGHT
  • COLOR_HIGHLIGHTTEXT
  • COLOR_INACTIVEBORDER
  • COLOR_INACTIVECAPTION
  • COLOR_MENU
  • COLOR_MENUTEXT
  • COLOR_SCROLLBAR
  • COLOR_WINDOW
  • COLOR_WINDOWFRAME
  • COLOR_WINDOWTEXT
Система автоматически удаляет фоновые кисти классов при отмене регистрации класса с помощью UnregisterClass. Приложение не должно удалять эти кисти.

Если этот элемент null, приложение должно покрасить свой фон всякий раз, когда он запрашивается нарисовать в клиентской области. Чтобы определить, должен ли фон быть окрашен, приложение может обработать сообщение WM_ERASEBKGND или проверить элемент fErase член структуры PAINTSTRUCT, заполненной функцией BeginPaint.

lpszMenuName

Тип: LPCTSTR

Указатель на строку символов, завершающую значение NULL, указывающую имя ресурса меню класса, как имя отображается в файле ресурса. Если для идентификации меню используется целое число, используйте макрос MAKEINTRESOURCE. Если этот член NULL, окна, принадлежащие этому классу, не имеют меню по умолчанию.

lpszClassName

Тип: LPCTSTR

Указатель на строку, завершаемую значением NULL или атом. Если этот параметр является атомом, он должен быть атомом класса, созданным предыдущим вызовом функции RegisterClass или RegisterClassEx. Атом должен находиться в слове с низким порядком lpszClassName; Слово с высоким порядком должно быть равно нулю.

Если lpszClassName является строкой, он указывает имя класса окна. Имя класса может быть любым именем, зарегистрированным в RegisterClass или RegisterClassExили любым из предопределенных имен классов элементов управления.

Максимальная длина lpszClassName составляет 256. Если lpszClassName больше максимальной длины , функция RegisterClassEx завершится ошибкой.

hIconSm

Тип: HICON

Дескриптор небольшого значка, связанного с классом окна. Если этот элемент NULL, система выполняет поиск ресурса значка, указанного элементом hIcon, чтобы значок соответствующего размера использовался в качестве небольшого значка.

Замечания

Заметка

Заголовок winuser.h определяет WNDCLASSEX как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
заголовка winuser.h (включая Windows.h)

См. также

концептуальные

GetClassInfoEx

Справочник

RegisterClassEx

UnregisterClass

классы окон