Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как ограничить клиентскую область главной 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 обрабатывать ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо