Mfc VC中的OnSize()问题++
在我的VC++MFC应用程序中,我有不同的视图。在每个视图中,当我将其最大化时,我将大小和位置更改为新的内容。通常情况下,它会完全最大化屏幕大小。但我不想要tht。所以在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
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;