Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » problem....

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
09.12.2007, 20:12 Uhr
~Misc
Gast


hi! ich hab ein select-feld das bei CBN_SELCHANGE die funktion OnPaint() aufruft. in dieser wird die folgende Funktion aufgerufen:


C++:
void CIntegrierenDlg::draw_function()
{

    UpdateData(TRUE);
    // m_select ist die memberfunktion vom selectfeld
    MessageBox(m_select);


    if(spitze2 == "FUNKTION 1")
    {
        //bla
    }
    else if(spitze2 == "FUNKTION 2")
    {
        //bla
    }

    else
    {
        MessageBox("Keine fkt ausgewählt");
    }
}


er gibt jetzt aber immer den ausgewählten wert von VOR dem ändern des feldes aus, nicht den wert, den das selectfeld DANACH hat.
weiß jemand warum?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.12.2007, 00:58 Uhr
mmc20
puss in boots


hi,
ich hab die erfahrung gemacht das UpdateData(..)-aufrufe in OnPaint() (oder OnDraw()) immer irgendwie zu komischen verhalten führen. desshalb lass das mal weg, und les den status deiner combobox mit "GetCurSel()" aus zb:

C++:
// wenn du nur den index brauchst
int test = m_DeineComboBox.GetCurSel();
// falls du den text brauchst
CString csTemp;
m_DeineComboBox.GetLBText( m_DeineComboBox.GetCurSel(), csTemp );


ebenso solltest du unbedingt "OnPaint()" nicht selbst aufrufen, besser mit "Invalidate()" (oder die WM_PAINT posten).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.12.2007, 21:45 Uhr
~Misc
Gast



Zitat von mmc20:
hi,
ich hab die erfahrung gemacht das UpdateData(..)-aufrufe in OnPaint() (oder OnDraw()) immer irgendwie zu komischen verhalten führen. desshalb lass das mal weg, und les den status deiner combobox mit "GetCurSel()" aus zb:

C++:
// wenn du nur den index brauchst
int test = m_DeineComboBox.GetCurSel();
// falls du den text brauchst
CString csTemp;
m_DeineComboBox.GetLBText( m_DeineComboBox.GetCurSel(), csTemp );


ebenso solltest du unbedingt "OnPaint()" nicht selbst aufrufen, besser mit "Invalidate()" (oder die WM_PAINT posten).

perfekt, damit funktionierts. Danke!
 
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: