单文档中文档对象关联多个视图相关问题讨论

LZQGdut 2010-12-04 10:27:08
这两天在研究 MFC 的单文档分割视图相关知识,可是遇到了好几个关卡…… 我们知道,作为一个单文档程序,它只有一个文档对象,并且该文档对象关联了一个视图对象,现在有这样几个问题想跟大家讨论下:

1.对文档对象关联视图对象这样一个操作,除了可以提供数据支持外,它还有什么作用呢?

2.对该视图进行分割成 View1 和 View2,原来的视图还存在吗?也就是说,View1 和 View2 是覆盖在原视图之上的吗?

3.如果现在对视图依然分割成两个视图,但是第一个是View1(新视图) ,第二个是原有的视图(只是区域范围缩小了)。作为原有的视图类它已经跟文档对象关联了,然而新视图 View1 跟文档对象相关联了吗?如果没有关联,实现关联的话要怎么用编程实现?

以上几个问题,热切希望各位对其中任何一个有所了解的都来讨论……
...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
LZQGdut 2010-12-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wkq87 的回复:]
……
3.可以在文档视图类模板里面关联,也可以在Doc类中用UpdateAllViews更新所有视图类
[/Quote]
……
在模板里面关联要怎么做呢?
LZQGdut 2010-12-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 visualeleven 的回复:]
看你的App类的InitInstance函数中创建单文档模板的时候指定的是哪个view类
[/Quote]
网上也有相应的解决方案, 不过我怎么检验新视图类已经跟文档对象关联了呢?就是说,跟文档对象关联的视图和没有跟文档对象关联的视图之间有什么区别呢?
wkq87 2010-12-05
  • 打赏
  • 举报
回复
1.主要是数据的处理吧,从磁盘中读取数据等等。
2.存在的,只是覆盖了(不是很清楚,之前遇到过这个问题,感觉是覆盖)
3.可以在文档视图类模板里面关联,也可以在Doc类中用UpdateAllViews更新所有视图类
MYNAMELIULI 2010-12-05
  • 打赏
  • 举报
回复
不懂帮你顶~
傻X 2010-12-05
  • 打赏
  • 举报
回复
1.文档不用都没关系,就用CView,相关数据反正都放里面好了,不行就传值解决。
2.视图分割的例子

if (!m_wndSpMain.CreateView(0, 0, RUNTIME_CLASS(视图名),
CSize(200, 200), pContext))
{
TRACE0("Failed to create left pane view\n");
return FALSE;
}
// The right pane is a frame which and contain several different views.
if (!m_wndSpMain.CreateView(0, 1,
RUNTIME_CLASS(视图名), CSize(100,100), pContext))
{
TRACE0("Failed to create right pane frame\n");
return FALSE;
}

m_pViewLeft = (CView*)m_wndSpMain.GetPane(0,0);
m_pViewRight = (CView*)m_wndSpMain.GetPane(0,1);


我不知道楼主是怎么分割的。但是应该是不会消失的

3.还是一句话,不关联又怎么样?只要处理的好,根本不需要关联。
LZQGdut 2010-12-05
  • 打赏
  • 举报
回复
咋这么冷清呢?
Eleven 2010-12-04
  • 打赏
  • 举报
回复
看你的App类的InitInstance函数中创建单文档模板的时候指定的是哪个view类
oyljerry 2010-12-04
  • 打赏
  • 举报
回复
1.文档,视图主要就是为了降低偶尔,所以文档主要用来进行数据处理.
2.视图分割,在原来的基础上分割一个新的。
3.多个视图都可以跟文档关联,创建视图的时候关联。

2,640

社区成员

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

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