Thema: Delphi NonVCL & SetClientRect

Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#1

NonVCL & SetClientRect

  Alt 14. Aug 2006, 00:22
Hi,

In der VCL ist es möglich mit ClientRect die Höhe und Breite des Clientbereiches zu ändern.
In der nonVCL ist dies nicht so einfach zu regeln (gewesen).

Delphi-Quellcode:
function SetClientRect(hWnd: HWND; Width, Height: Integer): Boolean;
var
  R, R2: TRect;
  isMenu: Boolean;
begin
  SetRect(R, 0, 0, Width, Height);
  // Testen ob ein Menu vorhanden ist
  if GetMenu(hWnd) = 0 then isMenu := FALSE else isMenu := TRUE;
  // errechnen der neuen Fenstergrösse (inc. des akt. Fensterstyles, Border etc.)
  AdjustWindowRectEx(R, GetWindowLong(hWnd, GWL_STYLE),
    isMenu, GetWindowLong(hWnd, GWL_EXSTYLE));
  GetWindowRect(hWnd, R2);
  // Fenster auf neue Grösse setzen
  Result := MoveWindow(hWnd, R2.Left, R2.Top, R.Right - R.Left, R.Bottom - R.Top, TRUE);
end;
Delphi-Referenz durchsuchenGetWindowRect Delphi-Referenz durchsuchenAdjustWindowRectEx Delphi-Referenz durchsuchenMoveWindow
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat