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;
// -------------------------------------------------------------------------------------------------