关于splitter分割问题求教,谢谢!

juge 2003-01-20 11:09:50
在主窗口改变大小时,我想重新分配各个spane的大小,如何做?我试了在CMainFrame::OnSize中
m_wndSplitter.RecalcLayout();
结果不行,请问如何做?谢谢!

...全文
34 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
juge 2003-01-21
  • 打赏
  • 举报
回复
OK,这个是对的,但if(m_wndSplitter.GetSafeHwnd()){}不能判断出Splitter是否创建好了吗?我觉得应该可以呀。但问题是出在哪儿呢?

不过你给的这个代码试可以的。非常感谢!给你加分!
zhdleo 2003-01-20
  • 打赏
  • 举报
回复
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);

CRect rect;
GetWindowRect( &rect );
if( m_bSplitterCreated ) // m_bSplitterCreated set in OnCreateClient
{
m_wndSplitter.SetColumnInfo(0, rect.Width()/2, 10);
m_wndSplitter.SetColumnInfo(1, rect.Width()/2, 10);
m_wndSplitter.RecalcLayout();
}
}

你看看!
juge 2003-01-20
  • 打赏
  • 举报
回复
我试了,不行呢。你看看,代码如下:
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
if(m_wndSplitter.GetSafeHwnd())
{
CRect rc;
GetClientRect(&rc);
m_wndSplitter.SetColumnInfo(0, rc.Width()/2,0);//SetRowInfo
m_wndSplitter.RecalcLayout();
}
}
执行就出现执行了非法操作。谢谢了!
zhdleo 2003-01-20
  • 打赏
  • 举报
回复
up.
hnyyy 2003-01-20
  • 打赏
  • 举报
回复
OnSize(...)
{
if(m_wndSplitter.GetSafeHwnd())
{
m_wndSplitter.SetColumnInfo(0, 200,0);//SetRowInfo
m_wndSplitter.RecalcLayout();
}
}

15,979

社区成员

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

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