MFC单文档怎么设置窗口大小的下限,例如就是窗口的尺寸必须大于等于800px_600px,如何实现?

2025-05-20 23:33:28
推荐回答(2个)
回答(1):

  1. 可以用滚动视图CSrcollView,设置滚动范围800*600,这样即使窗口缩小了,实际客户区仍有这么大;

  2. 可以禁止系统菜单的放缩和最大化,通过MoveWindow或者初始化窗口属性cs变量固定窗口大小,不可缩小也不可放大;

  3. 截获框架CMainFrame的OnSize,在里面强行设置(不推荐,效果不好)

void CMainFrame::OnSize(UINT nType, int cx, int cy) 
{
if(cx<800) 
{
cx = 800;
CRect rect;
GetWindowRect(rect);
rect.right = rect.left+cx;
MoveWindow(rect,true);
}

CSDIFrameWnd::OnSize(nType, cx, cy);

// TODO: Add your message handler code here

}

回答(2):

初始化的时候把窗口大小设置为你所允许的下陷,然后在WM_MOVING消息函数里面处理。