krovomite
Messages postés54Date d'inscriptionvendredi 4 juillet 2003StatutMembreDernière intervention 2 septembre 2009
-
1 déc. 2004 à 13:59
krovomite
Messages postés54Date d'inscriptionvendredi 4 juillet 2003StatutMembreDernière intervention 2 septembre 2009
-
3 déc. 2004 à 09:42
Salut,
Je voudrais savoir un truc concernant le CComboBox:
je voudrais faire une CComboBox avec des valeurs a l'interieur, cela est fait, mais j'ai un probleme lorsque je veux selectionner une valeur parmis tant d'autres j'ai un pb, il m'affiche toutes les valeures les unes a la suite des autres dans une AfxMessageBox.
Je suppose que c'est CComboBox::GetLBText
qui fait ca ou alors CComboBox::SetCurSel, mais je ne vois pas comment faire, je mets mon morceau de code pour que vous compreniez mieux :
void CChildView::Game_Size()
{
CComboBox* pmyComboBox = new CComboBox;
CString str;
int nIndex;
pmyComboBox->Create(
WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST,
CRect(10,10,200,100), this, 1); // changer et le mettre autre part (barre des menus) this
for (int i = 0; i <= 10; i++)
{
if (i >= 3)
{
str.Format("%d X %d", i, i);
nIndex = pmyComboBox->AddString(str);
}
}
// valeur de la selection
/*nIndex = pmyComboBox->GetCurSel();
if(nIndex != LB_ERR)
pmyComboBox->GetLBText(nIndex, str);
AfxMessageBox(str);*/
int nCount = pmyComboBox->GetCount();
if (nCount > 0)
pmyComboBox->SetCurSel(nCount - 1);
AfxMessageBox(str);
return;
}
mais la avant que je selectionne dans ma liste il m'affiche 10 X 10, pk ?
Merci d'avance de vos reponses :D
Si la connaissance peut creer des problemes, ce n'est pas par l'ignorance que l'on peut les resoudre.
-- Isaac Asimov
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 1 déc. 2004 à 14:33
Je comprend pas très bien ton problème. Dans le code que tu met, AfxMessageBox(str) affiche la dernière valeur de str à savoir celle de la boucle for avec i=10 (GetLBText est en commentaire). C'est donc normal qu'il affiche "10*10".
Si tu décommente la partie de code, tu fait GetCurSel avant d'avoir initialisé par SetCurSel, la sélection est donc vide (LB_ERR) et tu ne récupère pas de texte.
=> Après avoir ajouté tes items par AddString, fait un SetCurSel pour initialiser la sélection (sur l'item 0 par exemple).