Wann wird "OnDestroy()" aufgerufen bei CDialog?



  • Hallo ihr ich habe ein Dialog das ich mit new erzeuge.
    und schliesse es dann wider mit pMyDlg->Destroy();.. es wird bei dem aufruf zwar das dialog geschlosen, aber "OnDestroy" wird nich aufgerufen.

    Ich hab einen Timer , denn ich mit SetTimer(1,1000,NULL) in "OnInitDialog" setze.

    wenn ich nun das fesnter schliesse will ich ihn wieder mit "KillTimer(1)" löschen!
    da er ja nich in "OnDestroy" springt ruf ich KillTimer im destruktor auf in dem ich pMyDlg mit delete nach pMyDlg->Destroy() aufrufe aber dann Programmabstutz bei Killtimer??????



  • Wenn es zerstört (geschlossen) wird.
    Ist das Englische Wort für zerstören.

    BOOL CTimerDlg::DestroyWindow() 
    {
    	// TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
    	MessageBox("Good Bye Timer");
    	KillTimer(1);
    	return CDialog::DestroyWindow();
    }
    

    Gruß Doug_HH



  • ja ich weis.. aaber wenn ich pDlg->DestroyWindow() aufrufe wird es zwar geschlossen aber er springt nich in die funktion "OnDestroy"



  • versuch doch mal EndDialog() zu überladen und kill da deinen Timer.

    gruß


Anmelden zum Antworten