Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#18

AW: Win32 non-Vcl ein zweites Window Modal und Umlaute Frage

  Alt 26. Mai 2018, 02:13
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

Geändert von EWeiss (26. Mai 2018 um 02:39 Uhr)
  Mit Zitat antworten Zitat