我想在窗口最小化的时候,将视图窗口保持在一个固定的数值上
我是这样做的:
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CRect rect(0, 0, MINFRAMESIZE_W, MINFRAMESIZE_H);
CalcWindowRect(&rect, 0); lpMMI->ptMinTrackSize.x = rect.Width();
lpMMI->ptMinTrackSize.y = rect.Height(); CFrameWnd::OnGetMinMaxInfo(lpMMI);
}
但是最小化以后,视图窗口的大小总是比我设定的值MINFRAMESIZE_W, MINFRAMESIZE_H小一块,(大约有几十像素的样子)这到底是怎么回事呢?
这里面我从来没有改变过映射方式,应该都是MM_TEXT模式这个不会错的。

解决方案 »

  1.   

    To:changning() 
    不好意思,不是很清楚,能解释的详细一些吗?
    你是不是值改写OnSize()函数?
      

  2.   

    在CMainFrame::OnCreate()
    {
    CMenu *pMenu = GetSystemMenu(FALSE);
    pMenu->RemoveMenu(SC_MAXIMIZE,MF_BYCOMMAND);//去掉最大化
    pMenu->RemoveMenu(SC_MINIMIZE,MF_BYCOMMAND);//去掉最小化
    }
      

  3.   

    重載最小化,也就是解惑sys_command消息,處理最小化代碼,載其中setwindowspos