Einzelnen Beitrag anzeigen

schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#15

Re: CreateWindowEx, Parent + Child erzeugen

  Alt 4. Jan 2010, 12:06
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?
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat