CSplitterWnd的一个问题

ryanbanks 2010-04-28 09:36:24
我分割视图,每个视图都设置好了相对位置、比例大小。在框架类的OnSize函数里也设置了大小,这样在拖动窗口大小的时候,每个视图会跟着一起等比例的改变大小。
现在的问题是,我不拖动窗口,只是按下窗口的最大化、还原按键,那些视图就不会按照之前设置的大小关系跟着一起等比例的变化。怎么解决这个问题?我要在什么消息响应中做修改?谢谢。
...全文
64 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryanbanks 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tanwei1002 的回复:]
楼主看看【拍砖】我最讨厌的十类问题
的第六条
[/Quote]
哦,对不起,我另问好了。
tanwei1002 2010-04-28
  • 打赏
  • 举报
回复
楼主看看【拍砖】我最讨厌的十类问题
的第六条
tanwei1002 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ryanbanks 的回复:]
引用 4 楼 visualeleven 的回复:
没有刷新吧;
加上RecalcLayout()试试;


C/C++ code
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);

// TODO: Add your message handler co……
[/Quote]

有新问题可以新开帖。。。。。
别一个帖子问个没完。。。。。。。
ryanbanks 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 visualeleven 的回复:]
没有刷新吧;
加上RecalcLayout()试试;


C/C++ code
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
//CRect rect; ……
[/Quote]

可以了,谢谢你。
顺便问一下,为什么拖动的时候不加RecalcLayout()没事,而最大化的时候不加RecalcLayout()就不能正常的显示呢?
Eleven 2010-04-28
  • 打赏
  • 举报
回复
没有刷新吧;
加上RecalcLayout()试试;

void CMainFrame::OnSize(UINT nType, int cx, int cy)  
{
CFrameWnd::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
//CRect rect;
//GetClientRect(&rect);
if (m_bCreateSplitter)
{
m_wndSplit1.SetRowInfo(0, cy*4/5, 0);
m_wndSplit2.SetColumnInfo(0, cx/4, 0);
m_wndSplit3.SetRowInfo(0, cy*3/5, 0);

m_wndSplit1.RecalcLayout();
m_wndSplit2.RecalcLayout();
m_wndSplit3.RecalcLayout();
}
}
ryanbanks 2010-04-28
  • 打赏
  • 举报
回复
怎么没人理我了
ryanbanks 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tanwei1002 的回复:]
OnSize
[/Quote]
我在OnSize里写了啊,是不是我写的有问题啊。下面我代码:

void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
CRect rect;
GetClientRect(&rect);
if (m_bCreateSplitter)
{
m_wndSplit1.SetRowInfo(0,rect.Height()*4/5,0);
m_wndSplit2.SetColumnInfo(0,rect.Width()/4,0);
m_wndSplit3.SetRowInfo(0, rect.Height()*3/5,0);
}

}
tanwei1002 2010-04-28
  • 打赏
  • 举报
回复
OnSize

15,980

社区成员

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

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