begin process at 2012 05 29 02:06:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

[C+++ MFC] Combo Box


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[C+++ MFC] Combo Box

vendredi 20 juillet 2007 à 12:47:12 | [C+++ MFC] Combo Box

zanrek

Bonjour,

voilà je fais face à un petit souci concernant les combo box. (Je n'ai en fait encore jamais utilisé ce type de contrôle).

Donc j'ai placé une Combo box sur me boîte de dialogue CSetup que j'ai nommé IDC_COMBO_CATEGORY à laquelle j'ai associé une variable de type CComboBox: m_Combo_Category

Je voudrais qu'à l'affichage de cete fenêtre, il y ait un certain nombre de lignes déjà remplies dans cette comboBox, et lorsque je clique sur un bouton, récupérer l'élément sélectionné.

J'ai déjà essayé danc un premier lieu de faire

m_Combo_Category.AddString ("ma chaine");

La compilation passe, mais des qu'il s'agit d'executer cette ligne (placée dans CSetup::CSetup (CWnd*pParent)), il me sort une erreur "debug assertion failed...".

Quelle peut en être la cause? Celà vient-il d'une mauvaise utilisation de la variable CComboBox?
vendredi 20 juillet 2007 à 14:20:45 | Re : [C+++ MFC] Combo Box

aardman

Membre Club
Réponse acceptée !
Salut,
Logiquement, j'aurais plutot mis le code d'initialisation du combo dans le OnInitDialog(), car a mon avis au moment de l'appel du constructeur de CSetup ta dialog n'est pas encore crée, et ton combobox aussi.
vendredi 20 juillet 2007 à 15:43:11 | Re : [C+++ MFC] Combo Box

zanrek

Hum en fait c'est pas tant ce probleme là (en fait ce code je le mets juste apres l'initialisation des autres variables de la fenêtre....

Mon Csetup n'a pas de OnInitDialog, vu que ce n'est pas ma fenêtre principale...

En fait le souci c'est que je ne connais pas trop la façon de manipuer les Combo Box
vendredi 20 juillet 2007 à 16:15:49 | Re : [C+++ MFC] Combo Box

aardman

Membre Club
Salut,
Oui ben c'est ce que je dis, au moment de l'appel du constructeur ton combobox n'existe pas encore (je parle bien de la fenêtre windows, pas de l'instance du CComboBox). Pour etre sur que le probleme vient bien de la, tu peux rajouter un ASSERT(::IsWindow(m_Combo_Category.GetSafeHwnd())) dans ton constructeur, et voir si ca échoue en debug.
Pour le OnInitDialog(), doit forcement y avoir un moyen de le rajouter, mais la je ne peux pas t'aider.

vendredi 20 juillet 2007 à 16:23:59 | Re : [C+++ MFC] Combo Box

zanrek

En effet, si je place ce code ailleurs (dans une fonction membre, par exemple, çà passe sans soucis... a ceci près que lq liste ne se déroule pas sur 5 ou 6 lignes, mais seulement sur une seule...


lundi 23 juillet 2007 à 10:09:58 | Re : [C+++ MFC] Combo Box

zanrek

Bon nouvelle semaine, nouveaux prolèmes :-)

Donc j'ai créé ma combo Box , et les éléments de celle ci se mettent à jour lorsque j'appuie sur un bouton. Celle-ci se déroule normalement, bref dans la situation actuelle, tout est OK.

Maintenant, j'aimerais que cette combo box ne s'initialise aps lorsque j'appuie sur le bouton, mais directement lors de l'affichage de la fenêtre "Setup".

Seul souci, je ne peux pas le faire depuis CSetup::Csetup.

Voici les autres méthodes qui sont dispo dans ma classe :

DoDataExchange, GetMessageMap, GetThisMessageMap, OnClickedDelete, OnClickedOverwrite, OnCheckfile (ces 3 dernières méthodes sont des méthodes que j'ai cré pour les boutons).

voici le code que je souhaiterais mettre pour initialiser mon combo box.:

DWORD dwNumeroEmploye;
CSTRING strNomEmploye;
strNomEmploye = "Vincent Tim";
dwNumeroEmploye = 1;

int nIndex

CComboBox * pBox = (CComboBox *) GetDlgItem(IDC_COMBO_CATEGORY);

nIndex = pBox->AddString(strNomEmploye);
pBox->SetItemData (nIndex,dwNumeroEmploye);



Voici aussi le code qui me sert à afficher ma fenêtre... c'est peut-être utile pour trouver une solution...

Csetup *psetup = new Csetup;
if (psetup!=NULL)
{
    BOOL ret = psetup-> Create(IDD_SETUP);
    if (!ret)
    AfxMessageBox ("erreur");
    psetup->ShowWindow(SW_SHOW);
}

lundi 23 juillet 2007 à 11:11:31 | Re : [C+++ MFC] Combo Box

aardman

Membre Club
Réponse acceptée !
Salut,
Moi je reste sur mon OnInitDialog() de la semaine derniere ;)
C'est dans cette fonction que tu dois initialiser tout les controles de ta dialog. D'apres msdn, OnInitDialog est une methode virtuelle qu'il suffit d'implementer dans ta classe, au même titre que OnOK ou OnCancel.
http://msdn2.microsoft.com/en-us/library/fwz35s59(VS.71).aspx
lundi 23 juillet 2007 à 11:23:01 | Re : [C+++ MFC] Combo Box

zanrek

Je vais essayer cette méethode... En fait à la base jou voulais utiliser un autre moyen , car je n'ai jamais implémenté OnInitDialog par moi même (c'est otujours lors de la création du projet que çà se faisait).

Je vais essayer de voir comment ils font dans MSDN.

Merci pour le lien!
lundi 23 juillet 2007 à 11:26:55 | Re : [C+++ MFC] Combo Box

zanrek

Ah oui aussi: Où (ou plutôt quand) dois-je appeler cette fonction?

Dans Csetup::Csetup?
lundi 23 juillet 2007 à 12:10:23 | Re : [C+++ MFC] Combo Box

aardman

Membre Club
Réponse acceptée !
Salut,
En général les methodes du style 'OnQuelqueChose' sont des réponses a des evenement, donc tu n'a pas a les appeler, c'est la dialog qui les appelera au bon moment.


1 2

Cette discussion est classée dans : type, box, combo, mfc, csetup


Répondre à ce message

Sujets en rapport avec ce message

pb COMBO-Box MFC [ par BarthOlivier ] Bj,J'ai un petit souci avec le controle ComboBox...Lorsque je selectionne le controle et que je tappe du texte dedans en finissant par ENTER, apparame Prob de combo avec MFC [ par perig ] Bonjour,Voila je programme depuis pas mal de temps en C/C++ mais MFC je nage :(donc j'ai 2-3 questions!!!Je commence par la plus générale : - Avez vou MFC: ouvrir une deuxieme dialogue box a partir d'une premiere [ par pidoumtimo ] Bonjour a tous.Voila mon probleme.Je souhaiterais qu'un clik sur un bouton ouvre une deuxieme dialogue box, ensuite on rentre des données sur cette de ajout d'éléments dans une combo box [ par mezaya ] Bonjour, Mon probleme est que je n'arrive pas a ajouter des éléments dans une combo box. pourtant j'envoie bien un message CB_ADDSTRING comme il font Combo box [ par CeNedra83 ] Je programme en C++ Visual.NET 2003 avec des MFC. dans une boite de dialogue j'ai une combo box, et je ne sais pas comment la remplir. j'ai crée une v [probleme de Vues MFC] [ par torNADoS ] Salut,J ai deux vues ds ^mon programme  1 de type CReecordView et l autre de type CFormView, le probleme c ke qd je clique sur un bouton ds celle de t Changer les couleurs dans un edit box (MFC application, visual c++) [ par wannalurn ] SalutJ'ai un petit probleme; j'aimerais en effet changer la couleur de mes edit box dans mon dialog box; concretement, ce que je veux c'est que apres [API | C++] Combo Box [ par keenrather ] Bonjour à tous,Alors voila je travaille sous Visual C++ 6 et j'ai crée une boite de dialogue avec une combo box dans mes ressources.Et mon problème c' MFC Help [ par torNADoS ] Salut à tous, Voila mon programme est composé de 2 Formes (type FormView) dans chaqun j ai creer un bouton.Si je clique sur un bouton il m'affiche l'a Boite de Dialog type : CFormView [ par BlueReaver ] BonjourJe suis obligé de travailler avec les MFC pour mon projet et je souhaiterai faire apparaitre une boite de dialog pour y afficher des Histogramm


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales