Aide sur les boites de dialogues pour un NewBee

Signaler
Messages postés
42
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
4 novembre 2008
-
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
-
Au Secours.
Je suis un adepte de Visual Basic depuis ses origines. Hors pour mon boulot je doit reprendre et mettre en forme un prog en Visual C++ 6.
Mais,rogntudju, comment fais t'on pour modifier SIMPLEMENT les propriétés d'un contrôle.
Sous VB, c'est simple (exemple pour un bouton):
MonBouton.visible=False ou MonBouton.Enabled=False etc....

Ca fait deux jours que je cherche l'équivalent en Visual C++ sans succés, d'autant plus que l'aide est franchement nulle en ce qui concerne Visual C++.

Merci d'avance.

docphiphi

15 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Et bien c'est bien là, où est la merveillosité du C++ :)
On ne modifie pas avec un simple . ou une simple -> ( builder )
Sauf si tu as créer préalablement ta propre classe... mais bon t'es pas encore là lol

Donc en faite, il existe une panoplie de fonction pour modifier les controles, il y a ensuite le simple fait d'envoyer un message à un contrôle pour lui affecter des propriétés...

Si tu veux de l'aide faut dire précicésemment ce que tu veux faire parce que c'est très vaste...

Genre changer la police : SendMessage(hButton, WM_SETFONT, (WPARAM)hFont, 1);

Et changer le texte d'une bouton : SetWindowText(hButton, "Nouveau Texte");
Bref, des détails :)


void Aurevoir( void ); //Bonne journée
Messages postés
80
Date d'inscription
lundi 18 février 2002
Statut
Membre
Dernière intervention
12 janvier 2007

Puisque tu as l'air de t'y connaitre pas mal Joky, j'ai moi aussi un soucis avec les boites de dialogues, et plus particulierement avec les images que j'insere dessus.

Avant tout, je precise que je travaille sous VC++ 6 et que je cree mes boites de dialogue a l'aide d'une resource.

Dans mon cas, j'ai insere lors de le creation de la dialogue box un certain nombre d'image, et j'aimerais pouvoir les afficher a ma convenance. Par exemple:
pous noter un element (un livre par exemple), plutot que de mettre betement 10/10, j'aimerais afficher un certain nombre d'etoiles (c'est assez courant dans les logiciels). Donc pour ce faire, j'ai cree deux images: une etoile pleine, et une vide. Je les ai inserees l'une sur l'autre dans mon dialogue box et je voudrais afficher soit l'une soit l'autre en fonction du besoin.
Comme DocPhiphi, j'ai parcouru l'aide de long en large a la recherche de la fonction magique, mais j'ai rien trouve. Alors si tu sais comment faire, ton aide sera la bien venue.

Merci d'avance.
Messages postés
42
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
4 novembre 2008

Merci de ta réponse rapide Joky.

Mon soucis est de trouver comment par prog rendre un contrôle (bouton, label ou autre) visible ou invisible, activé ou non, bref accéder aux propriétés de ce contrôle pour les modifier en fonction de variables.

Merci d'avance.

docphiphi
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Donc pour l'histoire du bouton, pour le rendre invisible on fait simplement un :
ShowWindow(hButton, 0) où hButton est le handle du bouton
et pour le faire réapparaitre, c'est encore la même fonction mais avec un 1 à la place du 0
ShowWindow(hButton, 1)

Pour l'histoire de l'actif et de l'inactif, on se sert de
EnableWindow( hButton, BOOL ) si le booléan vaut TRUE, on active le bouton, sinon on le désactive...
Donc voilà l'histoire des boutons.

L'histoire des étoiles...
Je présume que chaque controle ( BITMAP ) chargés en ressource, à un ID, donc si tu fais le ShowWindow(GetDlgItem(hWnd, ID_BITMAP), 0) où hWnd est le handle de la fenêtre parent et ID_BITMAP l'id du bitmap concerné.
De même qu'au dessus, pour réafficher, changer le 0 en 1 ;)

Voila j'espere que ma culture vous auras avancer dans votre quête du concret et de l'existencielle.
Désolé j'révise la filo en même temps lol ;)

Bonne soirée

void Aurevoir( void ); //Bonne journée
Messages postés
42
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
4 novembre 2008

Tiens ! J'en ai un qui fait la même chose à la maison (la Philo!!). lol.
Bon, Excuse moi de te déranger encore, mais chez moi, quand je tape ShowWindow(hButton, 0) , je me fasi engueuler à la compilation : function doesnt take 2 parametres !! Même chose poue EnableWindow....

Y doit me manquer quelque chose............

Encore merci.

docphiphi
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Euh non non j'tassure ya 2 paramètres, au pire pour vérifier tu tapes la fonction et il va te dire les paramètres qu'il faut, puisque tu bosses sous Visual...


void Aurevoir( void ); //Bonne journée
Messages postés
42
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
4 novembre 2008

Ben justement en intellisens, il me dit BOOL ShowWindow(int nCmdShow)..........snif

j'suis sous Visual C++ 6....

docphiphi
Messages postés
42
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
4 novembre 2008

PS
J'ai créé un prog de test avec VC++ en utilisant nouveau ->projet->MFC AppWizard(exe)..........

docphiphi
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Euh j'pense pas ca a un rapport avec MFC...
Quoi que, si c'est possible...
Mais bon dans la version Win32 j'tassure yen a deux lol, vérifie sur msdn
Et niveau MFC, jsuis une quiche jpeux pas trop t'aidé lol
Disoulé ;)


void Aurevoir( void ); //Bonne journée
Messages postés
42
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
4 novembre 2008

Bon, tant pis, Merci quand même et m...e pour le bac.
J'vas continuer mes recherches......

docphiphi
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Tiens quand j'y pense lol

T'as pas essayé Bouton.Show( FALSE )
ou bien Bouton.ShowWindow( FALSE )

Ptete c'est ça lol.
Et merci pour le merde du bac que tu as censuré lol ;)


void Aurevoir( void ); //Bonne journée
Messages postés
80
Date d'inscription
lundi 18 février 2002
Statut
Membre
Dernière intervention
12 janvier 2007

Je te remercie bcp pour ton aide Joky. Dans mon cas j'ai essaye de contourner le probleme, en faisant notament des LoadBitmap et SendMessage pour chaque image, mais j'ai du mal a m'yfaire, donc si j'y arrive pas, j'utiliserais ta methode. En tout cas, merci bcp.
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Ah bé moi j'te conseil les LoadBitmap, c'est beaucoup plus claire et plus glorieux comme méthodes lol...
Avant j'utilisé C++ Builder, et j'observe quand même le changement avec Visual C++
Donc utilisons les fonctions qui sont la pour ça :p


void Aurevoir( void ); //Bonne journée
Messages postés
42
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
4 novembre 2008

Salut Joky !
Alors, cette philo

J'ai résolu mon problème. Je traite mes infos en C++(c'est de l'acquisition en temps réel ->besoin de vitesse) avec une DLL et j'ai fait l'interface en VB......et là je retrouve mes petites habitudes......

Merci encore de ton aide.

docphiphi
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Héhé cette philo, j'pense que j'vais doubler ma moyenne de l'année
J'vais ptete avoir 7 ce qui est magnifique pour un élève comme moi qui à dû suivre 2 heures de philo dans l'année lol
Et oui, on sait s'amusé nous, Puissance 4, bataille navale avec mon fidèle ami qui est à l'autre bout de la classe lol ;)

Fin bref tout ça pour rien ;)
Tu n'as pas de question donc je réponds pas lol ;)


void Aurevoir( void ); //Bonne journée