Structure WNDCLASSEXA (winuser.h)

Contient des informations de classe de fenêtre. Il est utilisé avec les fonctions RegisterClassEx et GetClassInfoEx .

La structure WNDCLASSEX est similaire à la structure WNDCLASS . Il y a deux différences. WNDCLASSEX inclut le membre cbSize , qui spécifie la taille de la structure, et le membre hIconSm , qui contient un handle vers une petite icône associée à la classe window.

Syntaxe

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;

Membres

cbSize

Type : UINT

Taille, en octets, de cette structure. Définissez ce membre sur sizeof(WNDCLASSEX). Veillez à définir ce membre avant d’appeler la fonction GetClassInfoEx .

style

Type : UINT

Style(s) de classe. Ce membre peut être n’importe quelle combinaison des styles de classe.

lpfnWndProc

Type : WNDPROC

Pointeur vers la procédure de fenêtre. Vous devez utiliser la fonction CallWindowProc pour appeler la procédure de fenêtre. Pour plus d’informations, consultez WindowProc.

cbClsExtra

Type : int

Nombre d’octets supplémentaires à allouer suivant la structure de classe de fenêtre. Le système initialise les octets à zéro.

cbWndExtra

Type : int

Nombre d’octets supplémentaires à allouer après l’instance de fenêtre. Le système initialise les octets à zéro. Si une application utilise WNDCLASSEX pour inscrire une boîte de dialogue créée à l’aide de la directive CLASS dans le fichier de ressources, elle doit définir ce membre sur DLGWINDOWEXTRA.

hInstance

Type : HINSTANCE

Handle du instance qui contient la procédure de fenêtre pour la classe .

hIcon

Type : HICON

Handle de l’icône de classe. Ce membre doit être un handle pour une ressource d’icône. Si ce membre a la valeur NULL, le système fournit une icône par défaut.

hCursor

Type : HCURSOR

Handle vers le curseur de classe. Ce membre doit être un handle pour une ressource de curseur. Si ce membre a la valeur NULL, une application doit définir explicitement la forme du curseur chaque fois que la souris se déplace dans la fenêtre de l’application.

hbrBackground

Type : HBRUSH

Poignée du pinceau d’arrière-plan de la classe. Ce membre peut être une poignée du pinceau à utiliser pour peindre l’arrière-plan, ou il peut s’agir d’une valeur de couleur. Une valeur de couleur doit être l’une des couleurs système standard suivantes (la valeur 1 doit être ajoutée à la couleur choisie). Si une valeur de couleur est donnée, vous devez la convertir en l’un des types HBRUSH suivants :

  • 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
Le système supprime automatiquement les pinceaux d’arrière-plan de classe lorsque la classe est désinscrite à l’aide de UnregisterClass. Une application ne doit pas supprimer ces pinceaux.

Lorsque ce membre a la valeur NULL, une application doit peindre son propre arrière-plan chaque fois qu’elle est demandée à peindre dans sa zone cliente. Pour déterminer si l’arrière-plan doit être peint, une application peut traiter le message WM_ERASEBKGND ou tester le membre fErase de la structure PAINTSTRUCT remplie par la fonction BeginPaint .

lpszMenuName

Type : LPCTSTR

Pointeur vers une chaîne de caractères terminée par null qui spécifie le nom de la ressource du menu de classe, car le nom apparaît dans le fichier de ressources. Si vous utilisez un entier pour identifier le menu, utilisez la macro MAKEINTRESOURCE . Si ce membre a la valeur NULL, les fenêtres appartenant à cette classe n’ont pas de menu par défaut.

lpszClassName

Type : LPCTSTR

Pointeur vers une chaîne terminée par null ou est un atome. Si ce paramètre est un atome, il doit s’agir d’un atome de classe créé par un appel précédent à la fonction RegisterClass ou RegisterClassEx . L’atome doit être dans le mot d’ordre inférieur de lpszClassName ; le mot d’ordre élevé doit être égal à zéro.

Si lpszClassName est une chaîne, il spécifie le nom de la classe window. Le nom de classe peut être n’importe quel nom inscrit auprès de RegisterClass ou RegisterClassEx, ou n’importe quel nom de classe de contrôle prédéfini.

La longueur maximale de lpszClassName est 256. Si lpszClassName est supérieur à la longueur maximale, la fonction RegisterClassEx échoue.

hIconSm

Type : HICON

Handle d’une petite icône associée à la classe window. Si ce membre a la valeur NULL, le système recherche dans la ressource d’icône spécifiée par le membre hIcon une icône de la taille appropriée à utiliser comme petite icône.

Remarques

Notes

L’en-tête winuser.h définit WNDCLASSEX comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête winuser.h (inclure Windows.h)

Voir aussi

Conceptuel

GetClassInfoEx

Référence

RegisterClassEx

UnregisterClass

classes de fenêtre