在线等待,急!!!单文档窗口分割问题,高手请进!!

zcm242004 2006-08-29 02:22:07
我在一个单文档中,用了两个CSplitter分割CMainFrame,
大家看看俺的代码:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CRect rcClient(0, 0, 0, 0);
GetClientRect(rcClient);

ASSERT(m_wndSplitter1.CreateStatic(this, 2, 1));
ASSERT(m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CDownView),
CSize(rcClient.Width(), rcClient.Height()/5), pContext));

ASSERT(m_wndSplitter2.CreateStatic(&m_wndSplitter1, 1, 2, WS_CHILD | WS_VISIBLE,
m_wndSplitter1.IdFromRowCol(0, 0)));
ASSERT(m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CLeftTreeView),
CSize(rcClient.Width()/3, 4*rcClient.Height()/5), pContext));
ASSERT(m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(CTmpTst3View),
CSize(2*rcClient.Width()/3, 4*rcClient.Height()/5), pContext));

return TRUE;
}
这段代码实际上达不到效果(完成对主窗口上一下二的分割), 因为运行后最上面的子窗口的高度小得可怜!!但我的代码中明明是给了它1/5客户区高度的,真是狂郁闷啦!
有哪位大侠能指点一下小弟吗?
感激不尽,在线等待!!
QQ:330396800
...全文
294 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcm242004 2006-08-30
  • 打赏
  • 举报
回复
wenysongbaobao兄弟本意是好的,不过是上一下二式的,我要的是上二下一式的,哈哈!
Mackz兄弟的方法见效最快啊!
其他几位兄弟的方法我也试过了,多谢各位兄弟的指点,凡发贴者均有分!

wenysongbaobao 2006-08-30
  • 打赏
  • 举报
回复
不好意思写错了,是ASSERT(m_wndSplitter1.CreateView(0, 0, RUNTIME_CLASS(CView),
CSize(rcClient.Width(), rcClient.Height()*4/5), pContext));
wenysongbaobao 2006-08-30
  • 打赏
  • 举报
回复
ASSERT(m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CDownView),
CSize(rcClient.Width(), rcClient.Height()/5), pContext));前面加一句
ASSERT(m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CView),
CSize(rcClient.Width(), rcClient.Height()*4/5), pContext));试试看,思想是在首先用一个CView占住上面的空间。
在对下面的进行分割。应该就可以了
菜牛 2006-08-29
  • 打赏
  • 举报
回复
在这里是没有办法得到客户区大小的,因为初始化的时候是用CRect(0, 0, 0, 0)来初始化客户区的。

在框架的OnSize中判断窗口有效性,然后用SetRowInfo/SetColInfo来调整大小,别忘了调用ReCalcLayout()。
zcm242004 2006-08-29
  • 打赏
  • 举报
回复
To SoLike & raymonzhao:
你们说的方法,我都试过了,都不行啦?
思危 2006-08-29
  • 打赏
  • 举报
回复
在主框架窗口的OnSize函数中按照比例调整窗格大小
raymonzhao 2006-08-29
  • 打赏
  • 举报
回复
要达到效果的话,只要在相应的VIEW的onupdate或onsize里重新设定VIEW的大小就可以了.

15,976

社区成员

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

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