Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » bekomme einen listbox-eintrag nicht heruas

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.10.2002, 12:08 Uhr
~jga
Gast


hallo,

ich moechte aus einer listbox einen eintrag mittels folgender fkt. auf eine
var. zuweisen und diese dann weiterverarbeiten.

void CDialog4Me::OnSetfocusSkill()
{
int nModIndex;
m_strSkillList.GetSel(nModIndex);

if (nModIndex >= 0) // listitem is selected
m_strSkillList.GetText(nModIndex, m_strSkill);
else{m_strSkill="nicht gewaehlt";}
}
Info:
m_strSkillList = CListBox
m_strSkill = CString

Die meldung im debugger ist folgende fuer m_strSkillList:{CListBox hWnd:0xirgendetwas} und die var. nModIndex hat den wert 32!!!
nModIndex sollte aber einen wert von 0,1 oder 2 haben!!!

hat einer von euch eine ahnung was ich da falsch mache???

lg
jga
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.10.2002, 12:27 Uhr
Tommix



Hallo,
Du verwendest GetSel sozusagen verkehrtherum.

C++:
int IsSelected = GetSel(0);  // erster Eintrag ausgewählt?
IsSelected = GetSel(1);      // zweiter Eintrag ausgewählt? usw.


Hintergrund für dieses Herangehen ist, daß auch mehrere Eintrage markiert sein könnten.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.10.2002, 12:55 Uhr
~jga
Gast


hallo,

meinst du hier mit den zuweisungen von IsSelected, dass zuerst das zuweisen
auf eine var. erfolgen soll und danach den jeweiligen index abgefragen??

mein problem ist hier naemlich, dass beim aufruf der OnSetfocusSkill()-fkt.
in m_strSkillList schon ein eintrag drinnen stehen soll, es kommt aber wie gesagt die
meldung fuer m_strSkillList:{CListBox hWnd:0xirgendetwas}.warum steht hier
nichts drinnen, wenn ich in der listbox etwas selektiere??

in meinen rc-files habe ich auch schon nachgeschaut(mapping), aber ich weiss
momentan nicht was da schief laeuft!!

was ist der fehler??

lg
jga
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.10.2002, 13:09 Uhr
Tommix




Zitat:
... in m_strSkillList schon ein eintrag drinnen stehen soll ...

Ich bin mir nicht sicher, ob ich Dich recht verstehe, aber wenn überhaupt, muß dann in m_strSkill ein Eintrag stehen.
Wozu Du noch ein UpdateData() an den Anfang setzen müsstest:

C++:
void CDialog4Me::OnSetfocusSkill()
{
    UpdateData();

    TRACE("%s\n", m_strSkill);
}

Ansonsten gibt es noch GetCurSel(), vielleicht suchst Du das?
nModIndex = GetCurSel();

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.10.2002, 15:30 Uhr
~jga
Gast


hallo,

habe die loesung gefunden. ich habe irrtuemlicherweise in der OnSetfocusSkill-fkt.
zuerst den fokus auf die listbox gesetzt und diese daher auch abgefragt.was mir
dabei nicht aufgefallen ist, ich habe aber nicht das einzelne Item abfragen koennen, sondern
nur die gesamte listbox. in der anderen fkt, als ich auf das Item(aus der listbox) zugreifen
wollte, bekam ich dauernd eine -1 returned.jetzt frage ich das Item nun direkt in der
anderen fkt. ab, wo ich es brauche.hier nocheinmal ein ueberblick der funktionen.
[cpp]
// diese fkt. eruebrigt sich nun, da ich direkt in fkt. OnButtonModify zugreife
void CEx06aDialog::OnSetfocusSkill()
{
m_nModIndex = m_strSkillList.GetCurSel();
m_strSkillList.GetText(m_nModIndex, m_strSkill);
}

void CEx06aDialog::OnButtonmodify()
{
CEx06aDialogMod dlgMod;
BOOL bDlgRet;

// acess to select. listboxItem(->new<-)
m_nModIndex=m_strSkillList.GetCurSel();
m_strSkillList.GetText(m_nModIndex, m_strSkill);

// Open modify dialog
dlgMod.m_strMod = m_strSkill;
bDlgRet = dlgMod.DoModal();

// Check result
if (bDlgRet == IDOK) {
m_strSkillList.DeleteString(m_nModIndex);
m_strSkillList.InsertString(m_nModIndex,dlgMod.m_strMod);
}
if(bDlgRet == IDCANCEL) {}
}
[cpp]

danke nochmal,
jga
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: