关于切分视图,基本上成了,但是还有个毛病,不知原因在哪儿!
CMainFrame类里:
CSplitterWnd m_wndSplitter;
CSplitterWnd m_wndSplitter2;
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
//切分为两列
if (!m_wndSplitter.CreateStatic(this, 1, 2))
return FALSE;
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftForm),
CSize(100, 100), pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
//右边默认是CRightForm表单视图
if (!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightForm),
CSize(100, 100), pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
CRect r;
GetClientRect(&r);
//宽度1:4
m_wndSplitter.SetColumnInfo( 0, r.Width()/5, 0 );
m_wndSplitter.RecalcLayout();
return TRUE;
}
//右边再切分为两行视图(上边为CRight1Form,下边为CRight2Form)
void CMainFrame::OnViewRight12()
{
// TODO: Add your command handler code here
CWnd * pWnd = m_wndSplitter.GetPane(0,1);
if(pWnd != NULL && pWnd->IsKindOf(RUNTIME_CLASS(CRightForm)))
{
m_wndSplitter.DeleteView(0, 1);
if( !m_wndSplitter2.CreateStatic( &m_wndSplitter, 2, 1, WS_CHILD | WS_VISIBLE, m_wndSplitter.IdFromRowCol(0,1) ) )
return;
if( !m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CRight1Form), CSize(100,200), NULL) )
return;
if( !m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(CRight2Form), CSize(100,0), NULL) )
return;
m_wndSplitter.RecalcLayout( );
}
return;
}
//把右边切分为一个视图(CRightForm)
void CMainFrame::OnViewRight()
{
//
CWnd * pWnd = m_wndSplitter.GetPane(0,1);
if (pWnd != NULL && pWnd->IsKindOf(RUNTIME_CLASS(CSplitterWnd)))
{
pWnd = NULL;
m_wndSplitter2.DestroyWindow();
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightForm),CSize(0, 0), NULL);
m_wndSplitter.RecalcLayout();
}
}
结果出现以下问题:
程序启动后,显示为左右两列,第一列为LeftForm,第二列为RightForm
执行OnViewRight12() 将第二列化分为上下两行,上面是Right1Form,下面是Right2Form,正常。
执行OnViewRight() 将第二列重置为RightForm,正常。
再执行OnViewRight12() ,结果出错!!!
请高手指出错在哪儿了,还缺什么吗?
可以提供程序源代码,我的Email: qiek@263.net
...全文
相关推荐
[旧版,有毛病]用Django做的HTTP请求控制树莓派gpio口驱动L298N电机驱动板的项目文档
- 然后,在Django项目中创建视图函数,这些函数将处理HTTP请求,并根据请求内容向GPIO口发送命令。 - 接下来,定义URL路由,将特定的URL映射到对应的视图函数。
数据库SQL面试题及答案
SQL Server 由于有锁升级的毛病,可以考虑拆开表。5. 有一个数据库 200G 大小,每天增加 50M 允许用户随时访问,制定备份策略!这个问题考察的是备份策略知识。
struts2+spring+ibatis
Struts2负责处理HTTP请求和视图的展示,Spring提供业务逻辑管理和依赖注入,iBatis作为数据访问层,将SQL语句与Java代码分离。
智能运维在百度日常业务监控中的探索.docx
当前,面对简单的业务监控和问题诊断,运维人员想找到目标和大事之间的关联关系,进行因果关系推导,并最终定位毛病,基本依靠人的阅历来进行。
浅谈鸿蒙 JavaScript GUI 技术栈
这一层的实现涉及到XML预处理、事件处理、数据绑定和视图更新。


