vs2010多文档如何实现多个文档重新排列?

zbguisheng 2014-09-15 09:07:45
如题,vs2010下我默认打开两个文档(同一个文档模板),它默认是这样显示的
我想让这两个文档这样显示

从第一个图到第二个图只要拖动图片就可以实现,但是代码如何实现呢?
是不是能获取文档对应的view类指针后再移动呢?如果这样需要什么函数呢?
求大神指教。
...全文
341 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
尘埃1206 2015-07-24
  • 打赏
  • 举报
回复
你好,我这几天也要实现这个功能,但是遇到些问题(我使用的这个函数MDITabNewGroup();):如果我添加两个菜单,一个平铺排列,一个水平排列,创建两个view之后,先平铺排列(正常),然后点水平排列菜单项就会出问题,还望博主指点一二,谢谢(QQ:2359811671)
尘埃1206 2015-07-24
  • 打赏
  • 举报
回复
你好,我这几天也要实现这个功能,但是遇到些问题(我使用的这个函数MDITabNewGroup();):如果我添加两个菜单,一个平铺排列,一个水平排列,创建两个view之后,先平铺排列(正常),然后点水平排列菜单项就会出问题,还望博主指点一二,谢谢(QQ:2359811671)
尘埃1206 2015-07-24
  • 打赏
  • 举报
回复
你好,我这几天也要实现这个功能,但是遇到些问题(我使用的这个函数MDITabNewGroup();):如果我添加两个菜单,一个平铺排列,一个水平排列,创建两个view之后,先平铺排列(正常),然后点水平排列菜单项就会出问题,还望博主指点一二,谢谢(QQ:2359811671)
wangyubuct1 2014-09-17
  • 打赏
  • 举报
回复
MDICascade是层叠效果,MDITile才是平铺效果, http://bbs.csdn.net/topics/340039756 这个是桌面的层叠和平铺效果的讨论,挺详细的,有参考价值。
wangyubuct1 2014-09-16
  • 打赏
  • 举报
回复
建立了一个office风格的工程试了一下,默认是有这个功能的啊,不用写了。
wangyubuct1 2014-09-16
  • 打赏
  • 举报
回复
没有啊,想实现来着,但是自己做感觉有点复杂,试了一下VS风格的界面,发现默认就是有这个功能的,不知道word风格有没有这个功能。
zbguisheng 2014-09-16
  • 打赏
  • 举报
回复
引用 4 楼 wangyubuct1 的回复:
又学习了,这个功能很好。
请教一下这个你实现这个功能了吗?有没有思路呢?
zbguisheng 2014-09-16
  • 打赏
  • 举报
回复
引用 11 楼 wangyubuct1 的回复:
你这个需求不太明白啊,是打算程序一运行出来的画面就是你那个第二幅图?新建工程的时候不选择选项卡,不知道什么效果。

我的需求是程序一运行就是第二幅图,视频选项卡为激活状态。
我已经差不多解决了,我添加了一个按钮重新划分,在CMainFrame类中添加响应函数
void CMainFrame::OnButtonNewhf()
{
// TODO: ÔÚ´ËÌí¼ÓÃüÁî´¦Àí³ÌÐò´úÂë
MDITabNewGroup();
}

点击一下按钮两个选项卡就可以分成两列了,只要在初始化过程中添加上这个功能就行。
那个MDICascade()函数好像是以前版本里面的,而且效果是这种
而MDITile()的效果才更接近一些
看来我还差的很远,还是要好好学习
wangyubuct1 2014-09-16
  • 打赏
  • 举报
回复
你这个需求不太明白啊,是打算程序一运行出来的画面就是你那个第二幅图?新建工程的时候不选择选项卡,不知道什么效果。
zbguisheng 2014-09-16
  • 打赏
  • 举报
回复
引用 9 楼 wangyubuct1 的回复:
建立了一个office风格的工程试了一下,默认是有这个功能的啊,不用写了。
默认的有这个功能?什么意思呢?直接拖动可以实现两个视图分成两栏,但是默认只打开一个视图,新建一个视图也是跟我的第一幅图一样啊?(我是要让程序开始两个视图就是分开的)
zbguisheng 2014-09-15
  • 打赏
  • 举报
回复
引用 1 楼 mlqxj35674 的回复:
CMDIFrameWnd::MDICascade
谢谢,再请问一下在哪添加这句话呢?我在OnNewDocument()下判断如果有两个文档执行
CMDIFrameWnd *m_tempMDICW = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
m_tempMDICW->MDICascade();
但是没有成功~~
wangyubuct1 2014-09-15
  • 打赏
  • 举报
回复
又学习了,这个功能很好。
yjmshpz 2014-09-15
  • 打赏
  • 举报
回复
引用 1 楼 mlqxj35674 的回复:
CMDIFrameWnd::MDICascade
新入门,没太看懂,能否详细的解析下?谢谢
schlafenhamster 2014-09-15
  • 打赏
  • 举报
回复
WM_MDICASCADE
mlqxj35674 2014-09-15
  • 打赏
  • 举报
回复
CMDIFrameWnd::MDICascade
zbguisheng 2014-09-15
  • 打赏
  • 举报
回复
引用 2 楼 schlafenhamster 的回复:
WM_MDICASCADE
谢谢啦,请问一下在哪调用呢? 我在新建文档中新建文档后添加
		CMDIFrameWnd *m_tempMDICW = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
		m_tempMDICW->SendMessage(WM_MDICASCADE,0,0);
没有反应

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧