Fenster im Thread schließen



  • Hallo,

    Ich möchte in einem Thread ein Fenster schließen. Allerdings kann ich in dem neue erstellten Thread das Fenster des Ersteller Threads nicht schließen. Ich bekomme immer den WinApi Fehler "Fehler 5: Zugriff verweigert". Wie kann ich das Fenster nun schließen?

    Ich erstelle den Thread mit _beginthread:

    iter->hThread = (HANDLE) _beginthread(NetworkThread, 1024,0);
    


  • So ich habe jetzt nochmal ein bisschen recherchiert. Ich versuche das Fenster mit DestroyWindow() zu schließen.

    In der MSDN steht aber

    Do not use DestroyWindow in one thread to destroy a window created by a different thread.

    Ich habe jetzt versucht mit Hilfe der Funktionen PostMessage() und SendMessage() die Nachricht WM_DESTROY an das betreffende Fenster zu senden. Doch leider funktioniert das auch nicht. WinApi meldet auch keine Fehler.

    Anmerkung: Das HWND ist auf jeden Fall gültig, SetWindowText() oder ähnlich funktioniert einwandfrei.



  • Hmm, nach vielem Probieren geht es jetzt.

    Die Kombination PostMessage(hwnd, WM_DESTROY, 0,0); + eigene Behandlung für WM_DESTROY in der WndProc geht. Lustigerweise geht es mit der Std. Nachrichtenbehandlung von Windows nicht.


Anmelden zum Antworten