读书人

分割窗体有关问题(捧场有分)

发布时间: 2012-02-08 19:52:21 作者: rapoo

分割窗体问题(捧场有分)
VS2005中将一个视图分割成两个CFormView,但是两个CFormView的对话框资源都不能设置为可见,设置为可见就报
“Debug Assertion Failed!”d的错误,点重试,进入了
#ifdef _DEBUG
// dialog template must exist and be invisible with WS_CHILD set
if (!_AfxCheckDialogTemplate(m_lpszTemplateName, TRUE))
{
ASSERT(FALSE); // invalid dialog template name
PostNcDestroy(); // cleanup if Create fails too soon
return FALSE;
}
#endif //_DEBUG

我设置了两个CFormView的对话框资源 为不可见,就不会报这个错误,但显示不出分割效果啊

我是这样做分割的
在SDI中的视图中
ManageView.h文件中声明
CSplitterWnd m_wndSplitter;

在ManageView.cpp中的OnCreate函数中进行分割

int CManageView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;


// TODO: 在此添加您专用的创建代码

m_wndSplitter.CreateStatic(this,1,2);
CCreateContext *pContext=(CCreateContext*)lpCreateStruct->lpCreateParams;

m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CView2),CSize(500,500), pContext);
m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CPatientEnrollView),CSize(500,500),pContext); return 0;
}


已经设置了Child属性,请告诉帮我看看为什么啊,非常感谢大家!


[解决办法]
只有主窗体的OnCreateClient提供了分割窗体的功能

其中一个视图我需要进行分割,所以我想在此View中进行分割
这里不能进行分割的,你只能进行不同的区域显示不同的数据,不能分割视图,视图必须依赖框架类,不能依赖视图类,这就是MFC的规定
[解决办法]
推荐你看一下《MFC深入浅出》,会受益匪浅的
[解决办法]

额 那我来捧场吧 哈哈

1.OnSize()
2.MoveWindow()
3.ReCalLayout()
4. ...

这几个是我遇到过的问题 ;)





[解决办法]
路过,学习~
[解决办法]
还有可能是对话框资源设置的问题
[解决办法]
看看,学习了
[解决办法]
帮顶 up
[解决办法]
帮顶,顺便学习学习~
[解决办法]
重写CMainFrame类的OnCreateClient函数,在它里面去调用CSplitterWnd::CreateView()去拆分视图框架窗口,最后return TRUE;
[解决办法]
学习~!
[解决办法]
捧场拿分的
[解决办法]
捧场来了
[解决办法]
捧场too
[解决办法]
用MainFrame::OnCreateClient添加分割代码,也可以切换view啊,还要在formview分割?直接加些控件撒
[解决办法]
估计是可以的吧,你把两个项目仔细比对一下咯
[解决办法]
我认为在框架中添加 控件 应该可以达到你想要的效果。对 View 分割,还没有搞过。
[解决办法]
关注下
[解决办法]

探讨
只有主窗体的OnCreateClient提供了分割窗体的功能

其中一个视图我需要进行分割,所以我想在此View中进行分割
这里不能进行分割的,你只能进行不同的区域显示不同的数据,不能分割视图,视图必须依赖框架类,不能依赖视图类,这就是MFC的规定

[解决办法]
我知道视图分割的场所:主窗体的OnCreateClient中


所用分割对象:CSplitterWnd m_wndSplitter

25楼写的代码估计就是lz想要的,应该没问题。

读书人网 >VC/MFC

热点推荐