MFC二次拆分窗口
本人用的是VC6.0我要实现分割成2x2的窗口,直接一次分割成2X2的不管拖动哪个边界都影响到4个子窗口,所以我现在要进行二次拆分。先拆分成上下两部分,再分别拆分成左右两...
本人用的是VC6.0我要实现分割成2x2的窗口,直接一次分割成2X2的不管拖动哪个边界都影响到4个子窗口,所以我现在要进行二次拆分。先拆分成上下两部分,再分别拆分成左右两部分。我的方法是先m_wndSplitter.CreateStatic(this,2,1),之后没有创建视图,再进行m_upSplitter.CreateStatic(&m_wndSplitter,1,2...)然后CreateView。下面的也是。最终却只是显示下半部分的拆分窗口。
可以看到客户区确实被拆分成了4部分,但是上部分的显示有问题,他的客户区的大小为0.我用m_wndSplitter.GetPane(0,0)->GetClientRect(&rect);获得的rect大小是0.m_wndSplitter.GetPane(1,0)->GetClientRect(&rect);rect的大小也是0.我看到网上一个二次拆分的问题,http://smallprogrammer.blog.163.com/blog/static/131659928200941995247266/ 他的方法应该是有问题的。他能正常显示是因为他先把要拆分的前面的一个视图创建好了,加入他要拆分的是最左边的子窗口应该也是看不到的。 展开
可以看到客户区确实被拆分成了4部分,但是上部分的显示有问题,他的客户区的大小为0.我用m_wndSplitter.GetPane(0,0)->GetClientRect(&rect);获得的rect大小是0.m_wndSplitter.GetPane(1,0)->GetClientRect(&rect);rect的大小也是0.我看到网上一个二次拆分的问题,http://smallprogrammer.blog.163.com/blog/static/131659928200941995247266/ 他的方法应该是有问题的。他能正常显示是因为他先把要拆分的前面的一个视图创建好了,加入他要拆分的是最左边的子窗口应该也是看不到的。 展开
展开全部
楼主可以这么做(就是方法比较戳):在第一次分割的时候先CreateView,指定Size,在第二次分割的时候先DeleteView,再CreateView,这样就不会有视图隐藏的情况了。
if ( !m_split.CreateStatic(this, 1, 2) )
{
return FALSE;
}
if (!m_split.CreateView(0, 0, RUNTIME_CLASS(CMy003View),
CSize(200,100), pContext) ||
!m_split.CreateView(0, 1, RUNTIME_CLASS(CMy003View),
CSize(200,100), pContext))
{
m_split.DestroyWindow();
return FALSE;
}
m_split.DeleteView(0,0);
if ( !m_splitLeft.CreateStatic(&m_split, 2, 1, WS_CHILD | WS_VISIBLE,
m_split.IdFromRowCol(0,0)) )
{
return FALSE;
}
if ( !m_splitLeft.CreateView(0, 0, RUNTIME_CLASS(CMy003View),
CSize(200,100), pContext) ||
!m_splitLeft.CreateView(1, 0, RUNTIME_CLASS(CMy003View),
CSize(200,100), pContext) )
{
m_splitLeft.DestroyWindow();
return FALSE;
}
return TRUE;
运行结果:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询