Mfc VC中的OnSize()问题++

Mfc VC中的OnSize()问题++,mfc,visual-c++,Mfc,Visual C++,在我的VC++MFC应用程序中,我有不同的视图。在每个视图中,当我将其最大化时,我将大小和位置更改为新的内容。通常情况下,它会完全最大化屏幕大小。但我不想要tht。所以在OnSize中,我这样编码 void CChildFrame::OnSize(UINT nType, int cx, int cy) { CMDIChildWnd::OnSize(nType, cx, cy); int XBorder = GetSystemMetrics(SM_CXMAXIMIZED); int YBo

在我的VC++MFC应用程序中,我有不同的视图。在每个视图中,当我将其最大化时,我将大小和位置更改为新的内容。通常情况下,它会完全最大化屏幕大小。但我不想要tht。所以在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;   
 } 
} 
但是发生了什么呢?当我最大化视图时,它只会最大化到上面提到的大小。但是在那个蓝色条中,没有最小化,最大化,关闭按钮。 当我双击蓝色栏时,所有按钮都会恢复到上一个位置。
我怎么能得到它呢?

我不知道蓝色条是什么,但你可能可以从以下几个方面进行研究:修改窗口样式请参见WS\u MAXIMIZE,WS\u MAXIMIZEBOX,。。。;覆盖OnGetMinMaxInfo而不是OnSize。

蓝色条是带有系统菜单和标题的系统frmae。我使用OnGetMinMaxInfo。但是它只得到X,Y位置为0,0。但是我想要X=0,Y=60。这是my OnGetMinMaxInfo lpMMI->ptMaxTrackSize.x=XBorder-100;lpMMI->ptMaxTrackSize.y=YBorder-100;