Zitat:
Ist DestroyWindow() das richtige Mittel um das Fenster zu schließen oder sollte da ein anderer Befehl hin?
Ist ok.. kommt halt auf das Fenster an das man erstellt
Bei Dialogen zum Beispiel würde ich EndDialog verwenden.
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Aber nicht verwechseln mit CreateDialogIndirectParam
dieser Dialog ist nicht MODAL deshalb musst du auch hier DestroyWindow verwenden.
https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
Das hier
EnableWindow(_hWnd1, false);
besser hier hin.
in WM_CREATE der zweiten Winproc besser noch in der Funktion wo das neue Window erstellt wird.
anstelle das..
Delphi-Quellcode:
EnableWindow(_hWnd1, false);
hwnd2 := CreateWindowEx(0, ClassName2, Window2Name,
WS_OVERLAPPEDWINDOW or WS_VISIBLE, 40, 10,
300, 200, _hWnd1, 0, hInstance, nil);
Delphi-Quellcode:
hwnd2 := CreateWindowEx(0, ClassName2, Window2Name,
WS_OVERLAPPEDWINDOW or WS_VISIBLE, 40, 10,
300, 200, _hWnd1, 0, hInstance, nil); // erste erstellen
EnableWindow(_hWnd1, false); // dann deaktivieren
erstelle zuerst das zweite Fenster dann deaktiviere das erste.
So wie du es machst könnte es zu einem Deadlock führen.. (Muss nicht, je nach dem was man im alten Fenster dann noch abarbeiten muss)
gruss