关于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之间的位置,应该怎么做?
...全文
87 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 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
  • 打赏
  • 举报
回复
不明白,怎么实现位置对调?

15,980

社区成员

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

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