none
KillTimer bei CDialog Objekten erforderlich? RRS feed

  • Frage

  • Hallo Forum

    Beim Versuch, einem neuen Kollegen die  Funktionsweise von Window-Timern zu erklären bin ich auf eine uralte Frage gestoßen:

    BOOL CxxDlg::OnInitDialog {
    ....
    SetTimer(TIMER_ID,500,NULL);
    ...
    }
    void CxxDlg::OnTimer(UINT nIDEvent) 
    {
    	...
    	CDialog::OnTimer(nIDEvent);
    }

    Man weiß,  dass diese Timer angeblich nicht allzu üppig gesät sind, und es die Funktion KillTimer() gibt. Die Frage, die sich nun stellt:

    Gibt es in der CDialog Basisklasse einen Mechanismus, der automatisch alle zugewiesenen Timer wieder freigibt ("tötet") sobald der Dialog beendet wird, oder muss ich das selber machen?

    Ich hab's meistens in die OnDestroy Funktion reingeschrieben, wenn's eine gegeben hat:

    void CxxDlg::OnDestroy(void) {
       KillTimer(TIMER_ID);
       ...
    }

    Muss ich das auf jeden Fall machen?

    Grüße

    FireHeart

    Donnerstag, 19. Juli 2012 13:27

Antworten

Alle Antworten