Styles de classe de fenêtre

Les styles de classe définissent des éléments supplémentaires de la classe window. Deux styles ou plus peuvent être combinés à l’aide de l’opérateur OR au niveau du bit (|). Pour affecter un style à une classe de fenêtre, affectez le style au membre de style de la structure WNDCLASSEX .

Exemple

    WNDCLASS wc = {};
    wc.lpfnWndProc = s_DropDownWndProc;
    wc.cbWndExtra = sizeof(CTipACDialog *);
    wc.hInstance = g_hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.style = CS_SAVEBITS | CS_DROPSHADOW;
    wc.lpszClassName = s_wzClassName;
    RegisterClass(&wc);

Exemples classiques Windows sur GitHub.

Constantes

Voici les styles de classe de fenêtre.

Constante/valeur Description
CS_BYTEALIGNCLIENT
0x1000
Aligne la zone cliente de la fenêtre sur une limite d’octets (dans la direction x). Ce style affecte la largeur de la fenêtre et sa position horizontale sur l’écran.
CS_BYTEALIGNWINDOW
0x2000
Aligne la fenêtre sur une limite d’octet (dans le sens x). Ce style affecte la largeur de la fenêtre et sa position horizontale sur l’écran.
CS_CLASSDC
0x0040
Alloue un contexte d’appareil à partager par toutes les fenêtres de la classe. Étant donné que les classes de fenêtre sont spécifiques au processus, il est possible pour plusieurs threads d’une application de créer une fenêtre de la même classe. Il est également possible pour les threads d’essayer d’utiliser le contexte de l’appareil simultanément. Dans ce cas, le système n’autorise qu’un seul thread à terminer son opération de dessin.
CS_DBLCLKS
0x0008
Envoie un message de double-clic à la procédure de fenêtre lorsque l’utilisateur double-clique sur la souris alors que le curseur se trouve dans une fenêtre appartenant à la classe .
CS_DROPSHADOW
0x00020000
Active l’effet d’ombre portée sur une fenêtre. L’effet est activé et désactivé via SPI_SETDROPSHADOW. En règle générale, cela est activé pour les petites fenêtres de courte durée, telles que les menus, pour mettre en évidence leur relation de commande Z avec d’autres fenêtres. Les fenêtres créées à partir d’une classe avec ce style doivent être des fenêtres de niveau supérieur ; il se peut qu’il ne s’agir pas de fenêtres enfants.
CS_GLOBALCLASS
0x4000
Indique que la classe window est une classe globale d’application. Pour plus d’informations, consultez la section « Classes globales d’application » de À propos des classes de fenêtre.
CS_HREDRAW
0x0002
Redessine l’ensemble de la fenêtre si un mouvement ou un ajustement de taille modifie la largeur de la zone cliente.
CS_NOCLOSE
0x0200
Désactive Fermer dans le menu de la fenêtre.
CS_OWNDC
0x0020
Alloue un contexte d’appareil unique pour chaque fenêtre de la classe.
CS_PARENTDC
0x0080
Définit le rectangle de découpage de la fenêtre enfant sur celui de la fenêtre parente afin que l’enfant puisse dessiner sur le parent. Une fenêtre avec le bit de style CS_PARENTDC reçoit un contexte d’appareil normal à partir du cache des contextes d’appareil du système. Il ne donne pas à l’enfant le contexte de l’appareil parent ou les paramètres de contexte de l’appareil. La spécification de CS_PARENTDC améliore les performances d’une application.
CS_SAVEBITS
0x0800
Enregistre, en tant que bitmap, la partie de l’image écran masquée par une fenêtre de cette classe. Lorsque la fenêtre est supprimée, le système utilise l’image bitmap enregistrée pour restaurer l’image d’écran, y compris d’autres fenêtres masquées. Par conséquent, le système n’envoie pas de messages WM_PAINT aux fenêtres qui ont été masquées si la mémoire utilisée par la bitmap n’a pas été ignorée et si d’autres actions d’écran n’ont pas invalidé l’image stockée.
Ce style est utile pour les petites fenêtres (par exemple, les menus ou les boîtes de dialogue) qui s’affichent brièvement, puis sont supprimées avant qu’une autre activité d’écran ne se produise. Ce style augmente le temps nécessaire pour afficher la fenêtre, car le système doit d’abord allouer de la mémoire pour stocker la bitmap.
CS_VREDRAW
0x0001
Redessine la fenêtre entière si un mouvement ou un ajustement de taille modifie la hauteur de la zone cliente.

Spécifications

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)