Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
Delphi 6 Personal
|
NonVCL & SetClientRect
14. Aug 2006, 01: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;
GetWindowRect AdjustWindowRectEx MoveWindow
|
|
Zitat
|