2010-03-18 2 views
0

내 VC++ MFC의 applcaiton에서 나는 각 view마다 최대 크기가 될 때마다 크기와 위치를 새로운 것으로 변경했습니다. 일반적으로 화면 크기에 최대 크기가 적용됩니다. 하지만 내가 원하는 건 없어. 그래서 OnSize()에서 나는 이렇게 코딩했다.VC++의 OnSize() 문제

void CChildFrame::OnSize(UINT nType, int cx, int cy) 
{ 
CMDIChildWnd::OnSize(nType, cx, cy); 

int XBorder = GetSystemMetrics(SM_CXMAXIMIZED); 
int YBorder = GetSystemMetrics(SM_CYMAXIMIZED); 
switch (nType) 
    { 
     case SIZE_MAXIMIZED: 
SetWindowPos(NULL,0,60,XBorder-45,YBorder-60,SWP_NOZORDER); 
    break; 
} 
} 

하지만 일어난 일은 내가보기를 극대화 할 때, 그이, 아니, 최대화,이 최소화 SI 닫기 버튼 위의 언급 크기로 only.But 그 파란색 줄에 최대로 얻을?입니다. 파란색 막대를 두 번 클릭하면 모든 단추가있는 이전 위치로 다시 이동합니다. 어떻게받을 수 있습니까?

답변

0

"파란 막대"가 무엇인지 이해하지 못 하겠지만 다음 지침을 살펴볼 수 있습니다. 윈도우 스타일 수정 (WS_MAXIMIZE, WS_MAXIMIZEBOX, ... 참조); OnSize 대신 OnGetMinMaxInfo를 덮어 씁니다.

+0

파란색 막대는 시스템 메뉴와 캡션이있는 시스템 frmae입니다. OnGetMinMaxInfo()를 사용하지만 X, Y 위치는 0,0으로 만 표시됩니다. 그러나 X = 0, Y = 60을 원합니다. 이 내 OnGetMinMaxInfo() lpMMI-> ptMaxTrackSize.x = XBorder-100; lpMMI-> ptMaxTrackSize.y = YBorder-100; – Anu