SDI切分窗口问题

林荫大道中 2009-12-04 10:22:25
各位前辈,同道中人好,在下有一问题请教:
在VC中SDI切分窗口时,一个视类是从CListView继承而来,另一个视类是从ViewForm继承而来,编译链接都没问题,但执行时出现debug assertion failed !错误.是何原因,望各位不吝赐教,谢谢!
...全文
86 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jd_wh 2009-12-04
  • 打赏
  • 举报
回复
可以借鉴一下这一个类,比较方便
http://www.codeproject.com/KB/splitter/kaldysimplesplitter.aspx?msg=1105075
--------------------------------------------------------------------------------------------------
void CSimpleSplitter::SetPane(int nIndex, CWnd* pPaneWnd);
BOOL CSimpleSplitter::CreatePane(int nIndex, CWnd* pPaneWnd, DWORD dwStyle, DWORD dwExStyle, LPCTSTR lpszClassName)
--------------------------------------------------------------------------------------------------
可以看到设置分割的窗体中显示的窗口传递的是CWnd,用起来相对灵活,没有出先楼主类似的错误。
yangaihong 2009-12-04
  • 打赏
  • 举报
回复
同样的问题,学习!
林荫大道中 2009-12-04
  • 打赏
  • 举报
回复
谢谢各位回复,我把代码给大家看看!
BOOL bRes=m_wndSplitter.CreateStatic(this,1,3); //创建2个水平静态窗格
if(bRes==NULL)
{
MessageBox("没有成功切分窗口!");
return FALSE;
}

//使用CreateView产生每个视图窗口,必须为每个窗格创建一个窗口且必须包含其相应类的头文件
bRes|=m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CMy1View),
CSize(100,200),pContext);//CMy1View是从CFormView继承而来
bRes|=m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMy2View),
CSize(100,200),pContext);//CMy2View是从CListView继承而来

return bRes;
顺便说一句,如果两个视类都是从CFormView继承的则不会出现错误,有一个是而另一个不是则会出现相同的错误,刚才有点小错误,打错字了,不好意思!
林荫大道中 2009-12-04
  • 打赏
  • 举报
回复
我好几天了没解决这个问题.大多书上网上也是这样写的(不过他们不是从FormView和另外的视类继承而来),,遇到过类似问题,但他们也没解决.我觉得代码没问题,这么简单但就是执行错误,不知道错在哪里
林荫大道中 2009-12-04
  • 打赏
  • 举报
回复
谢谢各位回复,我把代码给大家看看!
BOOL bRes=m_wndSplitter.CreateStatic(this,1,3); //创建2个水平静态窗格
if(bRes==NULL)
{
MessageBox("没有成功切分窗口!");
return FALSE;
}

//使用CreateView产生每个视图窗口,必须为每个窗格创建一个窗口且必须包含其相应类的头文件
bRes|=m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CMy1View),
CSize(100,200),pContext);//CMy1View是从ViewForm继承而来
bRes|=m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMy2View),
CSize(100,200),pContext);//CMy2View是从ListView继承而来

return bRes;
顺便说一句,如果两个视类都是从ViewForm继承的则不会出现错误,有一个是而另一个不是则会出现相同的错误.
ViewView
DavidHsing 2009-12-04
  • 打赏
  • 举报
回复
断言错误。
看一下提出出来的代码文件和行数,
可以在程序里面打断点跟踪一下

15,979

社区成员

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

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