CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

我被"切分窗口"的实例序气死了,哪位大哥帮忙解一下,高分!!在线等!!

楼主ymsh1982(fke)2004-05-03 19:21:02 在 C/C++ / C++ 语言 提问

第一:  
   
  运行AppWizard   创建一个单文档应用程序.工程名MySplitter.  
   
  第二:  
   
  在MainFrm.h中添加CSplitterWnd成员变量   CSplitterWnd   m_wndSplitter;  
   
  创建     BOOL   CMainFrame::OnCreateClient(LPCREATESTRUCT   lpcs,   CCreateContext*   pContext)   消息映射;  
   
  第三:  
   
  在上面的函数中添加如下代码:  
   
  BOOL   CMainFrame::OnCreateClient(LPCREATESTRUCT   lpcs,   CCreateContext*   pContext)    
  {  
  //   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class  
  CRect   cr;  
  GetClientRect(&cr);  
  CSize   paneSize(cr.Width()/3,cr.Height()/3);  
          m_wndSplitter.CreateStatic(this,3,1);  
  m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CMySplitterView),paneSize,pContext);  
  m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CMySplitterView),paneSize,pContext);  
  m_wndSplitter.CreateView(2,0,RUNTIME_CLASS(CMySplitterView),paneSize,pContext);  
  return   TRUE;  
  return   CFrameWnd::OnCreateClient(lpcs,   pContext);  
   
  }  
   
   
   
  运行后老是有四个错误,本人没法解决,麻烦高手们帮帮忙,谢谢!! 问题点数:100、回复次数:4Top

1 楼cngdzhang()回复于 2004-05-03 19:39:10 得分 30

你做的是把一个窗口分成3块把?  
   
   
   
  这是我的一个程序的一部分,你可以参考一下  
   
  我的也是分三个,是1分2,再用其中一块1分2,共3块  
   
  BOOL   CMainFrame::OnCreateClient(LPCREATESTRUCT   lpcs,   CCreateContext*   pContext)    
  {  
  //   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class  
  m_wndSplitter.CreateStatic   (this,1,2);  
  m_wndSplitter.CreateView   (0,0,RUNTIME_CLASS(Treeview),CSize(180,200),pContext);  
          m_wndSplitter2.CreateStatic(&m_wndSplitter,2,1,  
  WS_CHILD   |   WS_VISIBLE   |   WS_BORDER,  
  m_wndSplitter.IdFromRowCol(0,   1));  
  m_wndSplitter2.CreateView   (0,0,RUNTIME_CLASS(EditviewInfo),CSize(200,100),pContext);  
  m_wndSplitter2.CreateView   (1,0,RUNTIME_CLASS(EditviewFile),CSize(200,200),pContext);  
   
  return   TRUE;  
   
  //return   CFrameWnd::OnCreateClient(lpcs,   pContext);  
  }  
  Top

2 楼freefalcon(心宇—消失中...)回复于 2004-05-03 19:39:17 得分 50

正是如此  
  不过你要在MainFrm.cpp中加上  
  #include   "MySplitterView.h"   //CMySplitterView的头文件  
   
  编译一下,如果还有关于document的错误,那么你还得在MySplitterView.h中class   CMySplitterView定义之前加上  
  class   CMySplitterDoc;   //根据你的doc类名称确定  
   
  这是由于头文件包含顺序改变了,View比Doc提前定义,所以得加上前向声明Top

3 楼cngdzhang()回复于 2004-05-03 19:45:15 得分 20

return   CFrameWnd::OnCreateClient(lpcs,   pContext);  
   
  要屏蔽掉  
   
   
  另外  
  CMySplitterView  
  应该是你自己定义的一个从CView类(CEditView等的也行)派生的类  
   
  而且  
  你要在MainFrm.h文件(就是CMainFram所在的那个文件)中  
  #include   "MySplitterView"  
   
  就是要把你定义的那个类的头文件也包含进来  
  要不,会出现错误的  
   
  Top

4 楼ymsh1982(fke)回复于 2004-05-03 19:48:01 得分 0

问题解决.谢谢各位了.  
  请问freefalcon(心宇):  
  (1   )     为什么必须加#include   "MySplitterView.h"   //CMySplitterView的头文件  
  (2)       为什么必须加class   CMySplitterDoc;Top

相关问题

  • 关于程序实例
  • 关于自己写的程序去调用外部程序,不管调用那一个的都只有一个实例运行,请jisiping大哥再帮忙看一下
  • 大哥们帮忙,关于类实例化需要一个控件的handle ??
  • 小弟刚刚买了一本叫《Java 程序设计技巧与开发实例》,人民邮电出版社出的,想听听大哥们对这本书的意见
  • 如何让程序单实例运行?
  • 只运行一个JAVA程序实例
  • 求关于xml解析程序实例,和生成xml程序的实例
  • 有关排序——konrong大哥在吗
  • 排序错误,各位大哥帮忙
  • 如何在运行中用程序改变切分窗口的大小?

关键词

  • runtime
  • panesize
  • pcontext
  • wndsplitter
  • cmysplitterview
  • oncreateclient
  • createview
  • lpcs
  • cr

得分解答快速导航

  • 帖主:ymsh1982
  • cngdzhang
  • freefalcon
  • cngdzhang

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

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