개발중인 프로그램의 몇몇 화면들이, 1024x768같은 저해상도에서 아래가 짤리는 현상이 발생해서...
몇시간 동안이나 VCL 소스를 디버깅했는데... 전혀 예상치 못한 데에서 뒤통수를 맞았습니다.
황당하게도... MS 윈도우 자체가 스크린 높이보다 큰 윈도우는 무조건 넘는 높이만큼 잘라버리는군요.
Win32의 SetWindowPos() 함수에 스크린 높이보다 더 큰 Height를 넘기면 넘는 만큼을 잘라버리고 설정하네요.
지금 MDI 차일드로 높이 768 이상의 폼이 필요한데, 고해상도의 개발 PC에서 컴파일해서 1024x768 저해상도에서 실행
시키면 아랫부분이 무조건 잘려 버립니다. 전혀 해결책이 없군요.
난감... 일반 폼에서야 스크린 크기보다 더 높은 폼을 쓸 필요가 없지만 MDI에서는 필요할 수 있는데, 이런 단세포적인
높이 제한을 걸어놓다니.. 정말 짜증나네요.
|
type
TForm1 = class(TForm)
private
procedure WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
end;
procedure TForm1.WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo);
begin
Message.MinMaxInfo^.ptMaxTrackSize.Y := 3000; //Height 최대 크기를 3000픽셀로..
inherited;
end;
^^;