Hallo,
ich habe zu RegisterClass und Unregister nochmal eine Frage:
Ich erzeuge so mein Fenster:
Delphi-Quellcode:
zeromemory(@wa, sizeof(wa)); // <--<<
with wa do begin
lpszClassName := 'Mein_Fenster';
lpfnWndProc := @MainWndProc;
Style := CS_VREDRAW or CS_HREDRAW;
hInstance := hInstance;//hMain;
hIcon := 0;//LoadIcon(0, IDI_APPLICATION);
hCursor := 0;//LoadCursor(0, IDC_ARROW);
hbrBackground := (COLOR_WINDOW + 1);
lpszMenuName := nil;
cbClsExtra := 0;
cbWndExtra := 0;
end;
Windows.RegisterClass(wa);
hMainFenster := CreateWindowEx(WS_EX_TOPMOST Or WS_EX_TOOLWINDOW,
wa.lpszClassName,
'',
WS_POPUP or windows.ws_visible, // <--<<
0, 0,
0, 0, // <--<<
0,
0,
hInstance,
nil);
Das Fenster wird erzeugt und ich bekomme Aufrufe in der angegebenen Funktion: MainWndProc.
Wie beende ich das nun wieder.
Ich habe es so versucht:
Delphi-Quellcode:
if hMainFenster <> 0 then
DestroyWindow(hMainFenster);
if GetClassInfo(HInstance, wa.lpszClassName, TempClass) then
Windows.UnregisterClass(wa.lpszClassName,hInstance);
zeromemory(@wa, sizeof(wa));
Jedoch scheint es so das immer noch Aufrufe in meine MainWndProc Funktion rein kommen.
Wie kann ich das verhindern, oder ist wenn ich das Fenster schließe auch sichergestellt das die Funktion MainWndProc nicht mehr verfügbar ist?