Dialog aufrufen
-
ich habe ein Dialogfeldbasierendes Programm mit folgender Funktion:
void CTimerabDlg::Timerabg(int Sekunden) { CShutdownDlg CShut; if(Sekunden==SekDesktop) { Tdlg.Create(IDD_TIMERAB,this); Tdlg.ShowWindow(SW_SHOW); } }
Wenn ich diese Manuel über einen Button starten funktioniert auch alles. Wenn ich die Funktion jedoch automatisch von einer anderen Aufrufen lasse, stürzt das Progrmm immer ab. Im aufgerufene Dialogfenster fehlen die Buttons und wenn man mit dem Mauscursor rüber geht, ist da immer eine Sanduhr
-
eine frage wozu ist das gut? CShutdownDlg CShut;
benuzt du doch garnet in der funktion soweit ich sehe.
Wie oft ruft denn die andere funktion diese hier auf?[ Dieser Beitrag wurde am 06.01.2003 um 19:52 Uhr von xyz44 editiert. ]
-
Jaa eigentlich ist der Programmcode
void CTimerabDlg::Timerabg(int Sekunden) { if(Sekunden==10) { Tdlg.Create(IDD_TIMERAB,this); Tdlg.ShowWindow(SW_SHOW); } CString Sek; Sek.Format("%i Sekunden noch",Sekunden); SetDlgItemText(EDIT1,Sek); }
Ein Timer läuft ab und die letzten 10 Sek wird ein Dialog Fenster geöffnet und die Sekunden sollen mitgezählt werden.
-
also weist du ich würde das anders schreiben, ich würde ne schleife in die funktion machen, die läuft dann eben dioe 10 sek ab. und vergesse doch bitte net denn dialog mit DestroyWindow wieder zu löschen. Versuch mal:
void CTimerabDlg::Timerabg(int Sekunden) { if(Sekunden==10) { Tdlg.Create(IDD_TIMERAB,this); Tdlg.ShowWindow(SW_SHOW); } CString Sek; Sek.Format("%i Sekunden noch",Sekunden); SetDlgItemText(EDIT1,Sek); Tdlg.DestroyWindow(); }
-
Aber er soll ja geöffnet bleiben und dann von 10 sek die Sekunden runterzählen. Bei deiner varieante geht er ja nur einmal auf.