[MFC/c++]UpdataData probleem

Pagina: 1
Acties:

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 13-05 14:28

koli-man

Bartender!!!!

Topicstarter
Ooi, mensen

Ik heb eigenlijk een raar probleempje.
Kheb een class gevuld met een CString en een std::list<BlaObject>.
Dit wordt allemaal goed gevuld enzow en het werkt allemaal enzo.

Maar nou is dit eigenlijk alleen een probleem met het grafisch weergeven van de gegevens.
Ik heb een CListbox gevuld met gegevens en als de selectie verandert dan moeten gegevens(3 editvelden) geupdated worden.

Dus als dit event getriggerd wordt, dan worden de (gedisablede)editvelden gevuld en dan wordt UpdateData(FALSE) aangeroepen en dan verschijnen de goede waardes in de edit boxen.

Dan heb ik op datzelfde form nog 2 andere editvelden waar waardes ingevuld kunnen worden. Die waardes kunnen met een button gesubmit worden. En net van te voren moet natuurlijk de UpdataData(TRUE) aangeroepen worden voor de waardes te kunnen gebruiken.

Als ik daarna, weer op de CListBox klik, dan worden de gegevens geupdate, maar de selectie in de listbox die springt steeds terug.
Die listbox geeft dus problemen, ik heb in de docs gekeken naar UpdataData, maar die roep ik op de goede momenten aan, dacht ik zo.
iemand misschien even een suggestie, waar het aan kan liggen. Of een dergelijk probleempje al eens gehad.

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Ik vermoed dat je de elementen (al of niet per ongeluk in de achtergrond) verwijderd en opnieuw toevoegt in de Listbox. Dit is een standaardprobleem en niet anders op te lossen dan op het moment van updaten de huidige selected item op te slaan en daarna indien mogelijk te herstellen.

Professionele website nodig?


  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 13-05 14:28

koli-man

Bartender!!!!

Topicstarter
hmmm, ja. Tja ik vind dan wel een beetje jammer dat het op deze manier moet maar ja.
C++:
1
2
3
4
5
6
7
void FormSelectedArea::OnSelchangeListareasymbols() 
{
    CString symbolname;
    m_controllistareasymbols.GetText(m_controllistareasymbols.GetCurSel(),symbolname);
    FormSelectedArea::UpdateSymbolData(symbolname);
    FormSelectedArea::PreviewSymbol(symbolname);
}

en dan in de functie updatesymboldata
C++:
1
2
3
4
5
6
7
8
9
10
11
        const CSymbol& symbol = *i;
        if(symbol.getSymbolname()==symbolname)
        {
            m_editsymbolname = symbol.getSymbolname();
            m_editsymbolpower = symbol.getSymbolpower();
            m_editsymbolgroup = symbol.getSymbolgroup();
            /** problem here ----------------------------------- */
            int i = m_controllistareasymbols.GetCurSel();
            UpdateData(FALSE);
            m_controllistareasymbols.SetCurSel(i);
        }


dit werkt, en dit bedoelde je ongeveer ook zo neem ik aan. thnx in ieder geval.

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff