Thema: Delphi Paint-Messages abfangen

Einzelnen Beitrag anzeigen

Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#8

Re: Paint-Messages abfangen

  Alt 26. Sep 2005, 11:05
Zitat von n0b0dy:
undzwar wie kann ich die paint-messages von dialogen abfangen? (weiß nicht ob ich das so richtig ausgedrück habe^^)
also ich will eigentlich das design von zB einem OpenDialog verändern....
Wenn du unbedingt mit der Klasse TOpenDialog weiter arbeiten willst, dann kannst du das per Subclassing machen.

Delphi-Quellcode:
var
  OldWndProc: TFNWndProc;
  NewWndProc: TFNWndProc;
  ParentHWnd: HWND;

// -------------------------------------------------------------------------------------------------

function ParentOpenDialogWndProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM)
  : LRESULT; stdcall;
begin

  if uMsg = WM_PAINT then
  begin
    // Hier dein Source Code
  end;

  CallWindowProc(OldWndProc, hWnd, uMsg, wParam, lParam);

end;

// -------------------------------------------------------------------------------------------------

procedure TForm1.OpenDialog1Show(Sender: TObject);
begin

  NewWndProc := @ParentOpenDialogWndProc;
  ParentHWnd := GetParent(OpenDialog1.Handle);
  OldWndProc := TFNWndProc(SetWindowLong(ParentHWnd, GWL_WNDPROC, Longint(NewWndProc)));

end;

// -------------------------------------------------------------------------------------------------

procedure TForm1.OpenDialog1Close(Sender: TObject);
begin

  SetWindowLong(ParentHWnd, GWL_WNDPROC, Longint(OldWndProc));

end;

// -------------------------------------------------------------------------------------------------
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat