![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как ограничить клиентскую область главной MDI формы? [D6, Win2k]
Chubais © (2002-12-24 16:23:00)у меня внизу главной формы лежит панель, которую не замечают открывающиеся окна MDIChildren, то есть они раскрываются, нижней частью подлезают под эту панель. Как их заставить раскрываться только на свободном пространстве рабочего стола?
пробовал делать так:
в OnCreate главной формы
SetWindowLong(ClientHandle, GWL_USERDATA,SetWindowLong( ClientHandle,GWL_WNDPROC, integer( @ClientWindowProc)));
функция
function ClientWindowProc( wnd: HWND; msg: Cardinal; wparam, lparam: Integer ): Integer; stdcall;
begin
f := Pointer( GetWindowLong( wnd, GWL_USERDATA ));
case msg of
...
WM_NCCALCSIZE: begin
if wparam=1
then begin
NCCALCSIZE_PARAMS(pointer(lparam)^).rgrc[2].Bottom:=300; что так не работает
NCCALCSIZE_PARAMS(pointer(lparam)^).lppos^.cy:=400; что так
end;
end;
end;
Result := CallWindowProc( f, wnd, msg, wparam, lparam );
end;
как победить?
Chubais (2002-12-24 17:43:00) [1]чо-то не получается(((((((((
Игорь Шевченко (2002-12-24 16:46:00) [2]Мож, лучше WM_GETMINMAXINFO обрабатывать ?