CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

新手急问,单文档多视图的实现

楼主nirvono(川)2006-06-01 22:12:16 在 VC/MFC / 界面 提问

经常见到讲用CSplitterWnd拆分窗口:  
  -----------------CMainFrame::OnCreateClient--------------------------------------------  
                    CRect   cr;  
  GetClientRect(&cr);  
  CSize   paneSize_right(cr.Width()*2/3,cr.Height()/2);  
  CSize   paneSize_left(cr.Width()/3,cr.Height());  
   
  if(m_Splitter01.CreateStatic(this,1,2)==NULL)  
  return   FALSE;  
  m_Splitter01.CreateView(0,1,RUNTIME_CLASS(CTestView01),paneSize_left,pContext);  
   
  if(m_Splitter02.CreateStatic(&m_Splitter01,2,1,WS_CHILD|WS_VISIBLE,m_Splitter01.IdFromRowCol(0,1))==NULL)  
  return   FALSE;  
  m_Splitter02.CreateView(0,0,RUNTIME_CLASS(CTestView02),paneSize_left,pContext);  
  m_Splitter02.CreateView(1,0,RUNTIME_CLASS(CTestView03),paneSize_left,pContext);  
  --------------------------------------------------------------------------------------  
  CTestView01是向导生成的类,我现在想让CTestView02是CListView,CTestView03是CHtmlView,  
  直接替换CTestView02为CListView,CTestView03为CHtmlView,编译通过,执行时报错,  
  我要怎么修改才能达到目的?   为什么会出错?  
  最好能给出个单文档使用三个不同视图的例子,谢谢! 问题点数:100、回复次数:15Top

1 楼zh050317(我行^_^我素)回复于 2006-06-01 22:25:18 得分 10

http://www.vckbase.com/document/listdoc.asp?mclsid=5&sclsid=507Top

2 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2006-06-01 22:35:54 得分 10

www.codeguru.com  
  www.codeproject.com  
  都有示例,可以去看一下。  
  MFC   FAQ一书也比较详细的讲了。Top

3 楼WecanHuang(曾阿牛)回复于 2006-06-01 22:59:35 得分 10

vckbase也有Top

4 楼nirvono(川)回复于 2006-06-02 08:29:11 得分 0

看不懂~~除应用程序向导生成的视图,其他几个视图怎么添加进来的?Top

5 楼nirvono(川)回复于 2006-06-02 08:35:15 得分 0

课程设计快交了,急~~本来想加点新鲜的东来  
  正放狗搜"MFC   FAQ"Top

6 楼xiao_fang(frank)回复于 2006-06-02 08:59:32 得分 10

既然“想让CTestView02是CListView,CTestView03是CHtmlView”  
  当然得先生成这两个类,利用向导创建即可,但要注意将其构造函数改成public  
   
  http://www.vckbase.com/document/viewdoc/?id=192  
  讲得很清楚  
   
  PS:你那几个视图的大小怎么都设成paneSize_leftTop

7 楼nirvono(川)回复于 2006-06-02 10:32:39 得分 0

CListView和CHtmlView都是通过"插入"-->"类"添加的,  
  构造函数也改成public了  
  我建立的工程名叫MySplitter,如下添加CMySplitterView也报错?为什么??  
  ------------------------------------------------------------------------------------  
  if(m_Splitter01.CreateStatic(this,1,2)==NULL)  
  return   FALSE;  
  if(m_Splitter02.CreateStatic(&m_Splitter01,2,1,WS_CHILD|WS_VISIBLE,m_Splitter01.IdFromRowCol(0,1))==NULL)  
  return   FALSE;  
  m_Splitter02.CreateView(0,0,RUNTIME_CLASS(CMySplitterView),CSize(100,1000),pContext);  
  m_Splitter02.CreateView(1,0,RUNTIME_CLASS(CMySplitterView),CSize(100,100),pContext);  
  m_Splitter01.CreateView(0,1,RUNTIME_CLASS(CMySplitterView),CSize(100,100),pContext);  
  -------------------------------------------------------------------------------  
  提示"File:winsplit.cpp  
            Line:255"  
  新手,麻烦各位不吝赐教,谢谢!Top

8 楼Samlinsky(风轻君)回复于 2006-06-02 16:06:28 得分 10

例程分析窗口的切分和动态改变  
  http://www.yesky.com/20011108/203918.shtml  
   
  Top

9 楼nirvono(川)回复于 2006-06-02 18:20:35 得分 0

楼上的文章看过了,还是不懂~,我比较菜=_=  
  CreateView函数原型里RUNTIME_CLASS(CMyView)对应的是CRuntimeClass   *pViewClass;  
  RUNTIME_CLASS()返回CRuntimeClass结构?  
   
  我使用“插入”-->“类”,插入两个类,然后更改构造函数为“public”  
  再把两个新类的头文件包含进CMainFrame.cpp。  
  只这样作是不是还不够?  
  怎么让新类成为“run-time   class”,可以被RUNTIME_CLASS返回?  
  不懂~,各位帮帮忙,谢谢Top

10 楼johnyang628()回复于 2006-06-03 21:08:52 得分 0

是不是在调用CreateView函数的时候应该连接不同的视图类呢?好像不能连接同一个视图吧Top

11 楼nirvono(川)回复于 2006-06-05 18:55:13 得分 0

我是很无奈的结贴~~以为再也不在这里发帖问问题了Top

12 楼xiao_fang(frank)回复于 2006-06-06 11:36:22 得分 10

大家都很尽力,也提供了很多例子文章的链接,你却不仔细研讨,还颇多抱怨,心态不好。  
   
  这样学习,难有提高,为你难过:(Top

13 楼pripor(心欲若止水,落花起涟漪)回复于 2006-06-06 12:39:29 得分 20

呵呵  
  两个view绑定时连doc都没有  
  client不承认Top

14 楼johnyang628()回复于 2006-06-17 10:34:01 得分 0

学习更多的是靠自己Top

15 楼lisypro()回复于 2006-06-18 11:01:46 得分 20

把源程序发给我   lisypro@sohu.com  
  帮你看看Top

相关问题

关键词

得分解答快速导航

  • 帖主:nirvono
  • zh050317
  • DentistryDoctor
  • WecanHuang
  • xiao_fang
  • Samlinsky
  • xiao_fang
  • pripor
  • lisypro

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo