Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Schnittrahmen proportional - WM_SysCommand

  Alt 16. Jul 2013, 14:39
Ich habe mir mal erlaubt, den Code leicht zu modifizieren:
Delphi-Quellcode:
procedure TMainForm.OnMessageHandlingHook(var Msg: TMsg; var Handled: Boolean);
var
  Direction: Integer;
begin
  Handled := False;
  if (Msg.message = WM_NCLBUTTONDOWN) then
    if (Msg.hwnd = Handle) then
      begin
        if Msg.wParam in [HTMINBUTTON, HTMAXBUTTON, HTCLOSE] then
          Handled := true
        else
          begin
            Direction := -1;
            case Msg.wParam of
              HTLEFT:
                Direction := WMSZ_LEFT;
              HTRIGHT:
                Direction := WMSZ_RIGHT;
              HTTOP:
                Direction := WMSZ_TOP;
              HTBOTTOM:
                Direction := WMSZ_BOTTOM;
              HTTOPLEFT:
                Direction := WMSZ_TOPLEFT;
              HTTOPRIGHT:
                Direction := WMSZ_TOPRIGHT;
              HTBOTTOMLEFT:
                Direction := WMSZ_BOTTOMLEFT;
              HTBOTTOMRIGHT:
                Direction := WMSZ_BOTTOMRIGHT;
            end;
            if Direction <> -1 then
              begin
                ReleaseCapture;
                DefWindowProc(Handle, WM_SYSCOMMAND, SC_SIZE or Direction, 0);
                Handled := true;
              end;
          end;
      end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat