关于CSplitterWnd使用的问题?

neverTheSame 2011-11-01 03:20:37
我首先使用以下方式创建分隔窗口:
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CView1), CSize(200, 0), pContext);
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CView2), CSize(200, 0), pContext);
m_wndSplitter.CreateView(0, 2, RUNTIME_CLASS(CView3), CSize(200, 0), pContext);
然后,我想动态调整CView1和CView2之间的位置,应该怎么做?
...全文
48 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
向立天 2011-11-30
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
回复
healer_kx 2011-11-01
改那个Size即可。
回复
neverTheSame 2011-11-01
这是改变大小啊。
我是想把其中的两个VIEW之间进行调换。
回复
战在春秋 2011-11-01
楼主意思是用代码而不是用鼠标改变吧?
可以使用如下三个函数。
SetRowInfo
SetColumnInfo
RecalcLayout
一个简单的示例代码,具体应用楼主可详查MSDN
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);
CRect cr;
GetWindowRect(&cr);

if ( m_bInitSplitter && nType != SIZE_MINIMIZED )
{
m_mainSplitter.SetRowInfo( 0, cy, 0 );
m_mainSplitter.SetColumnInfo( 0, cr.Width() / 2, 50);
m_mainSplitter.SetColumnInfo( 1, cr.Width() / 2, 50);

m_mainSplitter.RecalcLayout();
}
}
回复
buyong 2011-11-01
先DeleteView,然后CreateView
回复
neverTheSame 2011-11-01
不明白,怎么实现位置对调?
回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2011-11-01 03:20
社区公告
暂无公告