Se connecter avec
S'enregistrer | Connectez-vous

Visual c 2008 1 seul ligne dans combo box

Dernière réponse : dans Programmation

Sous visual 2008, dans OnInitInstance() d'une boite de dialogue,
je fait plusieurs m_COMBO_Noms.AddString(m_strNom); dans une boucle (m_strNom est un CString)
puis un updatedata(false);

Celà fonctionne dans tous les dialogue box, sauf une, ou rien a faire, une seul valeur apparait.

Celà fait 4 jours que je cherche, et rien a faire !!!

Quelqu'un a eut ce bug sous Visual C++ 2008 ?
Lassé par la pub ? Créez un compte

Justement c'est là le blème:
le même code fonctionne pour une fenêtre et pas l'autre, avec le même code:
  1. BOOL CDialog_CameraBDNew::OnInitDialog()
  2. {
  3. CDialog::OnInitDialog();
  4.  
  5. this->m_Combo_DefinitionVideo.AddString("Coucou");
  6. this->m_Combo_DefinitionVideo.AddString("Me VOilà");
  7. this->m_Combo_DefinitionVideo.SetCurSel(0);
  8.  
  9. }


Les fenêtres importées de Visual 6 fonctionnent avec les combo box et pas celles créées sous 2008:
Quand je clique sur le bouton pour développer le combo, rien ne se passe, alors que la fenêtre qui avait été créée avec Visual 6, le combo s'agrandit, et affiche la liste !

Pas de .Items.Add() en VisualC++

Les items sont bien ajoutés, mais le combo ne se déroule pas quand on clique sur la flèche du combo.

j'ai mis des boutons :

  1. void CDialog_CameraBDNew::OnBnClickedButtonA()
  2. {
  3. this->m_Combo_Essai.SetCurSel(0);
  4. //
  5. // Mise a jour données Mémoire ------> IHM
  6. //
  7. this->UpdateData(false);
  8.  
  9. }
  10.  
  11. void CDialog_CameraBDNew::OnBnClickedButtonB()
  12. {
  13. this->m_Combo_Essai.SetCurSel(1);
  14. //
  15. // Mise a jour données Mémoire ------> IHM
  16. //
  17. this->UpdateData(false);
  18.  
  19. }


pour sélectionner les items: ils y sont biens.

En copiant un combo d'une autre fenêtre créée sous visual 6, pour le remplacer, tout fonctionne.

C'est un créant un Combo depuis la boite à outils que celà merde.

Merci,

J'ai regardé dans les ressources, et les nouveaux combos box ont les même paramètres que les anciens.

Je n'ai pas regardé dans le code généré.

Je suis étudiant, et j'ai la version étudiant, pour laquelle je ne peux pas envoyer de message à Microsoft.

En septembre, je vais utiliser la version pro sur un poste et je vais réclamer à Microsoft.

Expert Programmation

Je n'ai jamais codé en C++ avec Visual C++ 2008.
Je code en C# sur Visual Studio 2008, mais ça doit être la même chose j'imagine.

Dans l'architecture de ton projet, est-ce que tu ne peux pas afficher des sous-éléments de ton fichier ?

Non, je n'ai que propriété sous un combo.

Mais j'ai vérifié les propriétés des combos qui ne fonctionnent pas avec ceux qui fonctionnent:
Aucun différence.

Dans les fichiers ressources, il y a la même chose, au niveau des paramètres.

Je pense qu'il s'agit d'un bug du compilateur pour les nouveaux combos.

Comme je suis en version étudiant, impossible de le signaler à Microsoft.

Tant pis pour eux...

En attendant, je créé les nouveaux combo en copiant un qui fonctionne !!!



Expert Programmation

C'est peut-être juste un problème de taille de la petite fenêtre qui s'ouvre lorsqu'on ouvre la combo box, et quauel tu n'aurais pas activé le scrolling vertical.
Je ne sais plus si c'est toujours comme ça, mais avant, lors de l'édition de la fenêtre, il fallait faire un clic droit sur le bouton fléché de la combo pour pouvoir redimensionner la fenêtre de la liste. Peut-être que dans ton cas, les champs sont aussi trop larges pour la fenêtre? Il y a des tests à faire.
Vérifie aussi qu'il n'est pas lié à un autre combo (bref, es-tu sûr de remplir la bonne combo box, et pas une autre non liée à celle de ton interface?)
Expert Programmation

Même le fichier de ressources .res reste inchangé?
Sinon, tu peux toujours tenter d'en créer une nouvelle, et si ça fonctionne, tu supprimes l'ancien (bien qu'il soit dommage de ne pas savoir d'où vient le problème ;)  ).
Lassé par la pub ? Créez un compte
Tom's guide dans le monde