社区
界面
帖子详情
怎么实现下面这个界面设计?
leodream
2010-08-12 09:30:47
大家都知道,当建立一个多文档程序,最大化副窗体的时候看到副窗体会充满主窗体的用户区。
现在的问题是我想把主窗体静态拆分成3个子窗体(左边上下两部分,右边一大部分),然后当最大化副窗体的时候我希望副窗体充满的是主窗体的右边那个子窗体,换句话说将主窗体拆分出来的右边那个子窗体作为所有副窗体的容器。
该怎么实现?
...全文
91
3
打赏
收藏
怎么实现下面这个界面设计?
大家都知道,当建立一个多文档程序,最大化副窗体的时候看到副窗体会充满主窗体的用户区。 现在的问题是我想把主窗体静态拆分成3个子窗体(左边上下两部分,右边一大部分),然后当最大化副窗体的时候我希望副窗体充满的是主窗体的右边那个子窗体,换句话说将主窗体拆分出来的右边那个子窗体作为所有副窗体的容器。 该怎么实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leodream
2010-08-12
打赏
举报
回复
楼上的,您的意思是指先随便拆分出来,然后在控制MDICLIENT这个控件的起始坐标和长宽大小到我要的子窗口的位置上去?
我现在已经实现了对主窗口的静态拆分,代码如下:(其中dlg2是一个基于cformview的view类)
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
Splitter1.CreateStatic(this,1,2);
Splitter1.SetColumnInfo(0, 200, 100);
Splitter2.CreateStatic(&Splitter1,2,1,WS_CHILD|WS_VISIBLE,Splitter1.IdFromRowCol(0,0));
Splitter2.CreateView(0,0,RUNTIME_CLASS(dlg2),CSize(0,280),pContext);
Splitter2.CreateView(1,0,RUNTIME_CLASS(dlg2),CSize(0,0),pContext);
Splitter1.CreateView(0,1,RUNTIME_CLASS(dlg2),CSize(0,0),pContext);
return CMDIFrameWnd::OnCreateClient(lpcs, pContext);
}
执行上面的代码,主窗口被拆分成了左边上下两部分,右边一大部分的横的“品”字形结构。但是原来程序初始化完成后的那个浮动的副窗体(childframe)不见了。
那我该怎么在WM_SIZE里获得MDICLIENT这个控件的句柄,并调整位置到Splitter1的(0,1)号子窗体中去啊啊?
我是新手,现在还只能做些照葫芦画瓢的工作,请多包含。
ringphone
2010-08-12
打赏
举报
回复
你所说的多文档程序的用户区其实是一个叫MDICLIENT的控件,只要把这个窗口作为主窗口的右半部分就可以了。在主窗口的WM_SIZE里面获取到这个窗口的句柄或对象,重新调整一下其位置就可以了。
leodream
2010-08-12
打赏
举报
回复
没人知道吗?我按照单文档程序的拆分方法,将主窗体拆分后发现,原来浮动在面上显示的副窗体不见了...这是怎么回事啊?
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章