CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

哪位大哥帮帮我啊?关于分割窗口

楼主T655(小东子)2003-05-04 08:44:09 在 VC/MFC / 界面 提问

我想把一个SDI用静态窗口分成两个,但每次都出错提示:Debug   Assersion   Failed!winsplit.cpp的334行出错,如果用运态的分就没事,到底怎么搞的?多谢了 问题点数:20、回复次数:16Top

1 楼kangde(无酒而醉谓之青春)回复于 2003-05-04 08:50:55 得分 0

你的代码?Top

2 楼T655(小东子)回复于 2003-05-04 09:02:56 得分 0

我是在向导的第4步里选ADVANCED,然后选WINSTYLE中的SPLIT的,然后把create改为createstatic,然后修改参数,但是VC不是提示出错在哪一行,而是出现一个提示框,DEBUG   ASSERTION   FAILED!  
   
  BOOL   CMainFrame::OnCreateClient(LPCREATESTRUCT   /*lpcs*/,  
  CCreateContext*   pContext)  
  {  
  return   m_wndSplitter.CreateStatic(this,  
  1,   2,                                
  WS_CHILD|WS_VISIBLE,  
  AFX_IDW_PANE_FIRST);  
  }  
  Top

3 楼kangde(无酒而醉谓之青春)回复于 2003-05-04 09:05:30 得分 15

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(CDispartView),CSize(122,50),pContext);  
  m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CAnGRView),CSize(0,0),pContext);  
   
  return   TRUE;  
  }Top

4 楼kangde(无酒而醉谓之青春)回复于 2003-05-04 09:09:16 得分 0

分割视图后应该分别关联视图类Top

5 楼T655(小东子)回复于 2003-05-04 09:16:54 得分 0

谢谢你,独孤飘,现在那个出错窗口是没有了,是不是只要把那两个VIEW改成我自己处理的VIEW就行了吗?可是那个出错是因为什么呢为什么不是通常的提示出错在哪一行呢?Top

6 楼kangde(无酒而醉谓之青春)回复于 2003-05-04 09:18:26 得分 0

估计是分割后,发现没有关联视图,进行了一次ASSERTTop

7 楼T655(小东子)回复于 2003-05-04 10:20:20 得分 0

我把你的代码中的两个VIEW改成自己的VIEW之后还是出错.  
  m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CTest4View),CSize(122,50),pContext);  
  m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CTest4View),CSize(0,0),pContext);  
  CTest4View是原来的名字,我并没有改过但是出错  
   
  C:\Program   Files\Microsoft   Visual   Studio\MyProjects\test4\MainFrm.cpp(83)   :   error   C2653:   'CTest4View'   :   is   not   a   class   or   namespace   name  
  C:\Program   Files\Microsoft   Visual   Studio\MyProjects\test4\MainFrm.cpp(83)   :   error   C2065:   'classCTest4View'   :   undeclared   identifier  
  C:\Program   Files\Microsoft   Visual   Studio\MyProjects\test4\MainFrm.cpp(84)   :   error   C2653:   'CTest4View'   :   is   not   a   class   or   namespace   name  
  Error   executing   cl.exe.  
   
  Top

8 楼kangde(无酒而醉谓之青春)回复于 2003-05-04 10:54:57 得分 0

包含新视图类的头文件啊Top

9 楼T655(小东子)回复于 2003-05-04 12:45:07 得分 0

谢谢!!但是又出现新问题,请指教.  
   
  c:\program   files\microsoft   visual   studio\myprojects\test4\test4view.h(21)   :   error   C2143:   syntax   error   :   missing   ';'   before   '*'  
  c:\program   files\microsoft   visual   studio\myprojects\test4\test4view.h(21)   :   error   C2501:   'CTest4Doc'   :   missing   storage-class   or   type   specifiers  
  c:\program   files\microsoft   visual   studio\myprojects\test4\test4view.h(21)   :   error   C2501:   'GetDocument'   :   missing   storage-class   or   type   specifiers  
  Error   executing   cl.exe.  
   
   
  它指的第21行内容是: CTest4Doc*   GetDocument();  
  Top

10 楼catchme(木刀)回复于 2003-05-04 13:01:23 得分 5

在这个文件的前面加  
  class   CTest4Doc;就可以了Top

11 楼T655(小东子)回复于 2003-05-04 21:08:28 得分 0

谢谢木刀!!Top

12 楼nijian(永久磁体)回复于 2003-05-05 10:14:07 得分 0

能告诉我视图分割后怎么更新一个视图,而另外一个不更新。Top

13 楼BinaryPoet(二进制诗人)回复于 2003-05-05 18:23:38 得分 0

回答楼上的问题:  
  假设说你创建了一个垂直分割的视图,现在你只想更新右边的那个(类名就叫CMyRightView)。  
  在主窗口中添加函数GetRightPane函数如下:  
  CMyRightView*   CMainFrame::GetRightPane()  
  {  
  CWnd*   pWnd   =   m_wndSplitter.GetPane(0,   1);  
  CMyRightView*   pView   =   DYNAMIC_DOWNCAST(CMyRightView,   pWnd);  
  return   pView;  
  }  
  只要得到了右边视图的指针,调用Invalidate()就可以了。  
  good   luck!Top

相关问题

  • 分割窗口
  • 窗口分割CSplitterWnd?????
  • 关于静态分割窗口的问题,让我郁闷!!!!
  • 关于分割窗口
  • 分割窗口问题?
  • 分割一个窗口
  • 怎样分割web窗口
  • 窗口分割问题。
  • 分割窗口的问题
  • 分割窗口问题!!!

关键词

  • cmyrightview
  • wndsplitter
  • 出错
  • pcontext
  • cmainframe
  • createstatic

得分解答快速导航

  • 帖主:T655
  • kangde
  • catchme

相关链接

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

广告也精彩

反馈

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