Membres inscrits :2359
Membres en ligne : 0 Invités en ligne : 2 |
Bonjour à tous.
Voici quelques petits trucs concernant la classe wxDialog. Certains sont simplement tirés de la doc officielle, d'autres concernent des méthodes non documentées de cette classe.
Tout d'abord, la création des boutons "standards".
La classe wxDialog possède deux méthodes permettant de facilement créer un sizer contenant une série de boutons standards. Les boutons disponibles sont : "Ok", "Annuler", "Oui", "Non", "Aide" Il vous suffira de les spécifier en utilisant une combinaison de leurs IDs qui sont respectivement wxOK, wxCANCEL, wxYES, wxNO, wxHELP. Il y a également une valeur permettant de spécifier qu'aucun des boutons à créer ne doit être considéré comme le bouton par défaut : wxNO_DEFAULT La première de ces deux méthodes affiche simplement les boutons voulus, alors que la deuxième les affiche sous une barre de séparation. L'utilisation est très simple : il suffit de créer le sizer principal du wxDialog, de lui ajouter vos contrôles, et en dernier lieu, de lui ajouter le sizer contenant les boutons. Par exemple, pour créer un simple wxDialog contenant un wxTextCtrl, et les boutons "Ok" et "Annuler" : Code wxWidgets:MyDialog::MyDialog(wxWindow *parent) Et voilà , c'est tout bête, et ça peut épargner quelques lignes de code. Et pour avoir les mêmes boutons, mais affichés sous une ligne horizontale, et sans que le bouton "Ok" soit le bouton par défaut, il auraiit suffit de mettre : Code wxWidgets:wxSizer *btnSizer=CreateSeparatedButtonSizer( wxOK| wxCANCEL| wxNO_DEFAULT); Changer l'ID du bouton de validation Il se peut que lors dela création de votre dialogue, vous ayez besoin de définir un bouton comme étant celui qui doit être cliqué pour valider votre dialogue (pour qu'il ait le même comportement qu'aurait eut le bouton Ok, par exemple). Par la méthode "classique", il aurait fallu connecter ce bouton à une méthode du wxDialog depuis la table des événements, et dans cette méthode, appeler EndModal(wxOK). Les concepteurs de wxWidgets ont tout prévu : il suffit de déclarer l'ID de ce bouton comme étant l'ID de validation, et le tour est joué. Et cela se fait tout simplement comme ceci : Code wxWidgets:MyDialog::MyDialog(wxWindow *parent) Et sachez également que la même chose existe pour l'ID du bouton d'annulation : Code wxWidgets:wxDialog::SetEscapeId(ID_BOUTON2); Simuler un clic sur un bouton du wxDialog Vous avez besoin, pour une raison plus ou moins obscure, de simuler un clic sur un bouton de votre dialogue ? Plutôt que de créer un wxCommandEvent et de l'initialiser avec les infos concernant le bouton en question, puis de poster un évènement afin qu'il soit traité normalement, il suffit d'appeler la méthode EmulateButtonClickIfPresent(int ID). Cette méthode n'est pas référencée dans la doc officielle (sans doute parce qu'elle fait partie des méthodes "protected" de cette classe). Voici un petit exemple (bidon, j'en convient, mais c'est juste pour illustrer): Code wxWidgets:void MyDialog::Cliquer_Sur_Annuler() Et ça marche avec n'importe quel bouton !
Voilà , c'est tout pour l'instant.
D'autres petites combines viendront s'ajouter à cette liste. D'ici là , @+ et bonne prog ! Xav'
Il n'y a pas encore de commentaire pour ce snippet.
|