[C] Petite question de newb pour un bouton ...

Petite question de newb pour un bouton ... [C] - C++ - Programmation

Marsh Posté le 15-04-2002 à 09:29:13    

BOn, je suis entièrement en CreateWindow pour certaines raisons d emon programme, et ce que j'aimerais faire, c 'est changer d'état un bouton. En effet, j'ai par exemple un bouton OK, et quand je clique dessus, je veux qu'il se transforme en bouton annuler .... et ainsi de suite ...
 
QUelqu'un a une idée, un bout de code ....
 
Par avance merci ..
Albi

Reply

Marsh Posté le 15-04-2002 à 09:29:13   

Reply

Marsh Posté le 15-04-2002 à 10:31:01    

La fonction SetDlgItemText() permet de changer le nom d'un contrôle (objet)
 
selon iD, on affiche un texte ou l'autre (Faut garder le "contexte" dans une variable pr savoir où on en est)
 
char *szBt[] = {"&Lancer", "&Stopper"};
SetDlgItemText(hDlg, CtrlBtn, szBt[iD]);
 
CtrlBtn est le numéro (IDOK ici) qu'on a associé à l'objet dans le fichier .RC, genre
 CONTROL "&Lancer", IDOK, "BUTTON", BS_DEFPUSHBUTTON | WS_VISIBLE | WS_TABSTOP, 145, 17, 46, 16

Reply

Marsh Posté le 15-04-2002 à 10:33:18    

Si on clike sur ok, ca doit effectuer un code, et lorsque lon clik sur annuler ca doit en effectuer un autre, c 'est possible avec ta méthode ???

Reply

Marsh Posté le 15-04-2002 à 10:46:15    

Voui, car je l'utilise... :)  
 
Il faut qu'une variable soit à 0 si état d'origine. Quand on clique, elle passe à 1 et on change le blabla du bouton. Quand on clique à nouveau, sachant que le "drapeau" est à 1, on fait ce qu'il faut, remet à 0 la variable, le blabla correspondant, et ça repart. C'est plus pratique que d'interroger le texte du bouton, et comparer à une liste (!! lourd) pour savoir où on en est.
 
Je m'en sert, entre autres, pour faire un bouton de choix "Tout sélectionner" / "Tout déselectionner" dans une liste. Pratique car ça évite d'avoir "50" boutons. On peut même adapter le texte des boutons au contexte lors de l'affichage (une feuille de dialogue adaptable) à condition qu'il n'y ait pas trop de "diversité" sinon ingèrable.

Reply

Marsh Posté le 15-04-2002 à 11:33:20    

CARBON look tes messages privés ..
 :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed