Modifier les styles de contrôle

Pour créer un contrôle d’édition à l’aide de la fonction CreateWindow ou CreateWindowEx , spécifiez la classe EDIT, les constantes de style de fenêtre appropriées et une combinaison des styles de contrôle d’édition suivants. Une fois le contrôle créé, ces styles ne peuvent pas être modifiés, sauf comme indiqué.

Exemple

LRESULT MsgCreate(HWND hwnd, UINT uMessage, WPARAM wparam, LPARAM lparam)
{
    lparam;
    wparam;
    uMessage;

    // Create Edit control for typing to be sent to server
    if (NULL == (hOutWnd = CreateWindow("EDIT",
                           NULL,
                           WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_LEFT | 
                           ES_MULTILINE | ES_AUTOVSCROLL,
                           0,0,0,0,
                           hwnd,
                           (HMENU) ID_OUTBOX,
                           (HINSTANCE) GetWindowLongPtr(hwnd, GWLP_HINSTANCE),
                           NULL)))
        return FALSE;
    return TRUE;
}

Exemples classiques Windows sur GitHub.

Constantes

Constant Description
ES_AUTOHSCROLL
Fait défiler automatiquement le texte de 10 caractères vers la droite lorsque l’utilisateur tape un caractère à la fin de la ligne. Lorsque l’utilisateur appuie sur la touche ENTRÉE, le contrôle fait défiler tout le texte jusqu’à la position zéro.
ES_AUTOVSCROLL
Fait défiler automatiquement le texte vers le haut d’une page lorsque l’utilisateur appuie sur la touche Entrée sur la dernière ligne.
ES_CENTER
Centre le texte dans un contrôle d’édition monoligne ou multiligne.
ES_LEFT
Aligne le texte avec la marge de gauche.
ES_LOWERCASE
Convertit tous les caractères en minuscules à mesure qu’ils sont tapés dans le contrôle d’édition.
Pour modifier ce style une fois le contrôle créé, utilisez SetWindowLong.
ES_MULTILINE
Désigne un contrôle d’édition multiligne. La valeur par défaut est le contrôle d’édition sur une seule ligne.
Lorsque le contrôle d’édition multiligne se trouve dans une boîte de dialogue, la réponse par défaut à l’appui de la touche ENTRÉE consiste à activer le bouton par défaut. Pour utiliser la touche ENTRÉE comme retour chariot, utilisez le style ES_WANTRETURN .
Lorsque le contrôle d’édition multiligne n’est pas dans une boîte de dialogue et que le style ES_AUTOVSCROLL est spécifié, le contrôle d’édition affiche autant de lignes que possible et défile verticalement lorsque l’utilisateur appuie sur la touche ENTRÉE. Si vous ne spécifiez pas ES_AUTOVSCROLL, le contrôle d’édition affiche autant de lignes que possible et bipse si l’utilisateur appuie sur la touche Entrée quand plus aucune ligne ne peut être affichée.
Si vous spécifiez le style ES_AUTOHSCROLL , le contrôle d’édition multiligne défile automatiquement horizontalement lorsque l’insertion dépasse le bord droit du contrôle. Pour démarrer une nouvelle ligne, l’utilisateur doit appuyer sur la touche ENTRÉE. Si vous ne spécifiez pas ES_AUTOHSCROLL, le contrôle encapsule automatiquement les mots au début de la ligne suivante si nécessaire. Une nouvelle ligne est également démarrée si l’utilisateur appuie sur la touche ENTRÉE. La taille de la fenêtre détermine la position du wordwrap. Si la taille de la fenêtre change, la position wordwrapping change et le texte est réaffiché.
Les contrôles d’édition multiligne peuvent avoir des barres de défilement. Un contrôle d’édition avec des barres de défilement traite ses propres messages de barre de défilement. Notez que les contrôles de modification sans barres de défilement défilent comme décrit dans les paragraphes précédents et traitent les messages de défilement envoyés par la fenêtre parente.
ES_NOHIDESEL
Annule le comportement par défaut d’un contrôle d’édition. Le comportement par défaut masque la sélection lorsque le contrôle perd le focus d’entrée et inverse la sélection lorsque le contrôle reçoit le focus d’entrée. Si vous spécifiez ES_NOHIDESEL, le texte sélectionné est inversé, même si le contrôle n’a pas le focus.
ES_NUMBER
Autorise uniquement les chiffres à entrer dans le contrôle d’édition. Notez que, même avec cet ensemble, il est toujours possible de coller des non-chiffres dans le contrôle d’édition.
Pour modifier ce style une fois le contrôle créé, utilisez SetWindowLong.
Pour traduire le texte entré dans le contrôle d’édition en une valeur entière, utilisez la fonction GetDlgItemInt . Pour définir le texte du contrôle d’édition sur la représentation sous forme de chaîne d’un entier spécifié, utilisez la fonction SetDlgItemInt .
ES_OEMCONVERT
Convertit le texte entré dans le contrôle d’édition. Le texte est converti à partir du jeu de caractères Windows en jeu de caractères OEM, puis de nouveau dans le jeu de caractères Windows. Cela garantit une conversion de caractères correcte lorsque l’application appelle la fonction CharToOem pour convertir une chaîne Windows dans le contrôle d’édition en caractères OEM. Ce style est particulièrement utile pour les contrôles de modification qui contiennent des noms de fichiers qui seront utilisés sur les systèmes de fichiers qui ne prennent pas en charge Unicode.
Pour modifier ce style une fois le contrôle créé, utilisez SetWindowLong.
ES_PASSWORD
Affiche un astérisque (*) pour chaque caractère tapé dans le contrôle d’édition. Ce style est valide uniquement pour les contrôles d’édition sur une seule ligne.
Pour modifier les caractères affichés, ou pour définir ou effacer ce style, utilisez le message EM_SETPASSWORDCHAR .
Note: Pour utiliser Comctl32.dll version 6, spécifiez-la dans un manifeste. Pour plus d’informations sur les manifestes, consultez Activation des styles visuels.
ES_READONLY
Empêche l’utilisateur de taper ou de modifier du texte dans le contrôle d’édition.
Pour modifier ce style une fois le contrôle créé, utilisez le message EM_SETREADONLY .
ES_RIGHT
Aligne le texte à droite dans un contrôle d’édition monoligne ou multiligne.
ES_UPPERCASE
Convertit tous les caractères en majuscules à mesure qu’ils sont tapés dans le contrôle d’édition.
Pour modifier ce style une fois le contrôle créé, utilisez SetWindowLong.
ES_WANTRETURN
Spécifie qu’un retour chariot doit être inséré lorsque l’utilisateur appuie sur la touche ENTRÉE lors de la saisie de texte dans un contrôle d’édition multiligne dans une boîte de dialogue. Si vous ne spécifiez pas ce style, appuyer sur la touche ENTRÉE a le même effet que l’appui sur le bouton pousseur par défaut de la boîte de dialogue. Ce style n’a aucun effet sur un contrôle d’édition sur une seule ligne.
Pour modifier ce style une fois le contrôle créé, utilisez SetWindowLong.

Configuration requise

Condition requise Valeur
En-tête
Winuser.h