Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS C FAQs C TUTORIELS C LIVRES C COMPILATEURS C SOURCES GTK+

Tutorial d'initiation
A la programmation avec l'API Windows

Tutorial d'initiation a la programmation Windows avec Microsoft Visual C++
PrécédentIndexSuivant

Chapitre 2

Les boîtes de dialogue

3. Le contrôle 'Edit'

Cours théorique :

Ce contrôle à déjà été vu dans les projets précédents. C'est un des plus simples à utiliser. Comme pour tous les contrôles, on peut distinguer deux aspects à l'utilisation de celui-ci. Le premier aspect est son apparence. Elle est modifiée grâce à l'éditeur de ressources du compilateur. Si vous utilisez Visual C++, il vous suffit de double cliquer sur le contrôle pour accéder à ses propriétés. La deuxième partie du fonctionnement de ce contrôle se fait au travers de la procédure qui gère la boîte de dialogue. Elle consiste en la définition ou la récupération de l'état du contrôle (ici le texte qu'il contient).

Avant d'utiliser le contrôle, il faut donc définir son apparence, ainsi qu'un identifiant, permettant au programme de l'identifier. L'identifiant d'un contrôle est généralement de la forme 'IDC_' suivi du nom du contrôle tout en majuscules. Le compilateur se charge de maintenir à jour un fichier définissant toutes les constantes utilisées. Pour Visual C++, ce fichier est 'ressource.h'.

Il est possible de personnaliser de nombreuses caractéristiques pour un contrôle de type 'Edit'. Voici une liste regroupant les styles les plus utilisés. Cette liste n'est pas exhaustive, référez vous à l'annexe A pour plus de précisions. Si vous utilisez un éditeur de ressources, vous devriez pouvoir modifier les styles grâce à une interface graphique. Si éditez vos ressources en mode texte, les styles sont mis entre crochets.

Read Only [ES_READONLY] : Afficher le contrôle sur fond gris. Il est impossible de modifier le texte, mais il peut toutefois être sélectionné et copié.

Disabled : Le contrôle est désactivé. Il apparaît en gris et il est impossible de sélectionner le texte. Cette option ne sera accessible qu'à partir d'un éditeur de ressources car elle ne constitue pas un style. Pour désactiver un contrôle, utilisez la fonction EnableWndow() lors de l'initialisation de la boîte de dialogue.

Number [ES_NUMBER] : Indique que l'on ne peut saisir que des chiffres dans ce contrôle. Le point n'est pas accepté. Pour entrer un nombre à virgule, il faudra donc utiliser un contrôle classique.

Password [ES_PASSWORD] : Affiche des étoiles à la place des caractères saisis. Le texte ne peut pas être copié.

Multiline [ES_MULTILINE] : Indique que le contrôle peut contenir plusieurs lignes. Pour effectuer un retour à la ligne, il faut afficher le caractère '\r\n'. Au clavier, il faut taper CTRL+ENTER.

AutoHScroll [ES_AUTOHSCROLL] - AutoVScroll [ES_AUTOVSCROLL] : Indique si le contrôle doit défiler horizontalement ou verticalement. Pour permettre à un contrôle de défiler verticalement il faut désactiver le défilement horizontal.

Une fois que l'apparence du contrôle est convenable, il faut pouvoir lui assigner une valeur ou récupérer la valeur entrée par l'utilisateur. Ces manipulations se font au travers de 4 fonctions :

SetDlgItemInt() : permet de définir la valeur d'un contrôle grâce à un entier. Il est possible d'indiquer si cet entier est signé ou non. L'identifiant du contrôle est celui définit dans les ressources (IDC_... en général).

GetDlgItemInt() : permet de récupérer la valeur numérique d'un contrôle. Cette fonction échouera si le contrôle contenait du texte.

SetDlgItemText() : permet d'afficher une chaîne de caractères dans le contrôle. Cette chaîne de caractères peut à priori avoir n'importe quelle longueur.

GetDlgItemText() : permet de récupérer la chaîne de caractères contenue dans le contrôle. Il est indispensable de préciser la longueur maximale de la chaîne qui sera récupérée (elle correspond à la taille du buffer dans lequel elle sera stockée).


PrécédentIndexSuivant

Responsable bénévole de la rubrique C : Arnaud Feltz (buchs) - Contacter par EMail :
Vos questions techniques : forum d'entraide C - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.