![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать, чтобы в главном MDI окне не появлялись полосы прокру [D7]
Tria © (2005-01-20 13:07:00)тки при выходе дочернего окна за пределы главного?
sniknik (2005-01-20 13:43:00) [1]
function ClientWindowProc(wnd: HWND; msg: Cardinal; wparam, lparam: Integer ): Integer; stdcall;
var
f: Pointer;
begin
f := Pointer(GetWindowLong(wnd, GWL_USERDATA ));
case msg of
WM_NCCALCSIZE: if (GetWindowLong(wnd, GWL_STYLE) and (WS_HSCROLL or WS_VSCROLL)) <> 0 then
SetWindowLong(wnd, GWL_STYLE, GetWindowLong( wnd, GWL_STYLE) and not (WS_HSCROLL or WS_VSCROLL));
end;
Result := CallWindowProc(f, wnd, msg, wparam, lparam);
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
if ClientHandle <> 0 then begin
if GetWindowLong(ClientHandle, GWL_USERDATA) = 0 then {cannot subclass client window, userdata already in use}
SetWindowLong(ClientHandle, GWL_USERDATA, SetWindowLong(ClientHandle,
GWL_WNDPROC, integer(@ClientWindowProc)));
end;
end;