PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ wxWindows Fenster Problem



imedghar
19-01-2005, 13:08
Hi,
ich ahbe folgendes Problem:
ich habe eine for schelife, drin wird ein Fenster aufgerufen. das Problem ist , alle fenstern kommen auf einmal raus !!!
wie kann ich ein Fenster nach ein anderen zeigen? d.h nach jeden Knopfdruch (OK z.B) schliesst sich das aktuelle Fenster, und kommt das nächste in der for Schleife ??

ich danke euch im Voraus.

code:
for(int i = 0; i<V.size(); ++i)
{
if(V[i][0]!= "")
{
Frame *frame = new Frame("test V",
wxPoint(240, 240),
wxSize(580, 360));
frame->Show(true);
}
}

in Frame Klasse habe ich das event OnOK für OKButton:
void Frame::OnOK(wxCommandEvent& WXUNUSED(event))
{
int index= tp.indexOfV((actLabel->GetLabel()).c_str());
// indexOfV gibt das index of V wo was in ComboBox gespeichert wird.
tp.V[index][1] = pComboBox->GetValue();
Close(true);
}

Alex_K
19-01-2005, 15:32
um so ein verhalten zu bekommen gibt es viele möglichkeiten. was am sinnvollsten ist kommt dann darauf an was du mit den fenstern machst.

die einfachste möglichkeit wäre wenn du statt eines frames einen wxDialog verwendest und diesen modal anzeigen lässt. dadurch blockiert das elternfenster so lange bis der dialog geschlossen wurde.

wenn du unbedingt frames verwenden musst, oder nicht willst dass das elternfenster blockiert wird, dann würde mir spontan einfallen alles was zum konstruieren der weiteren frames notwendig ist dem ersten übergibst, und mit dem klicken auf ok jeweils das nächste frame erzeugt wird bevor das alte zerstört wird.