MFC多文档设置窗口大小

设置子窗口初始大小和位置:

在ChildFrm.cpp文件中修改PreCreateWindow函数如下:


BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)

{
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或样式
if( !CMDIChildWnd::PreCreateWindow(cs) )
return FALSE;
cs.x = 0; //初始窗口的x坐标
cs.y = 0; //初始窗口的y坐标
cs.cx = 1000; //初始窗口的宽度
cs.cy = 500; //初始窗口的高度


return TRUE;

}


设置父窗口初始大小:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
//  CREATESTRUCT cs 来修改窗口类或样式

cs.cx = 1500;  //初始窗口的宽度
cs.cy = 1000;  //初始窗口的高度

return TRUE;
}


设置多文档中子窗口的最大宽高和最小宽高:

类视图中选择CChildFrame,添加消息WM_GETMINMAXINFO对应的函数OnGetMinMaxInfo

void CChildFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

//设置子窗口的最大宽高和最小宽高。
lpMMI->ptMaxTrackSize=CPoint(1000,800);
lpMMI->ptMinTrackSize=CPoint(600,500);//设置大小的值
CMDIChildWnd::OnGetMinMaxInfo(lpMMI);
}

MFC(Microsoft Foundation Classes)中,单文档界面(SDI)应用程序的窗口大小调整可以通过消息映射机制来实现。当用户通过鼠标拖动窗口的边框或者使用窗口右下角的调整大小控件时,系统会发送WM_SIZE消息给窗口。你可以通过重写CWnd类的OnSize()函数来响应窗口大小变化的事件。 以下是一个简单的例子,展示了如何重写OnSize()函数来调整窗口的大小: ```cpp void CYourView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy); // 你可以在这里添加代码来调整你的窗口大小 // 比如调整视图大小、重新布局控件等 // 以下是一个示例代码,它可能会根据窗口的新尺寸来调整控件的大小或位置 if (m_Control) // 假设m_Control是你的控件成员变量 { // 重新定位控件到新的位置 m_Control.SetWindowPos(&CWnd::wndTop, 10, 10, cx - 20, cy - 20, SWP_NOZORDER); } // 如果窗口大小调整为最大化,你可能需要做一些特殊的处理 if (nType == SIZE_MAXIMIZED) { // 最大化时的特殊处理 } // 其他情况... } ``` 在上述代码中,`CYourView`应替换为你当前视图类的名称。你需要根据自己的需求来调整窗口或者控件的大小和位置。`OnSize()`函数中的参数`nType`表示窗口大小调整的类型,`cx`和`cy`是新的窗口宽度和高度。 注意,如果你的窗口大小调整涉及到视图重绘或者需要更新显示,你可能还需要处理WM_PAINT消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值