分割窗口,如何固定其大小

aled6825 2009-03-01 08:27:25
分割一个MDI,顶部与左右底部

BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
{
m_wndSplitterTop.CreateStatic(this,2,1);
m_wndSplitterTop.CreateView(0,0,RUNTIME_CLASS(CTopView),CSize(0,100),pContext);
m_wndSplitterMain.CreateStatic(&m_wndSplitterTop,1,2,WS_CHILD|WS_VISIBLE,m_wndSplitterTop.IdFromRowCol(1,0));
m_wndSplitterMain.CreateView(0,0,RUNTIME_CLASS(CLeftView),,CSize(200,0),pContext);
m_wndSplitterMain.CreateView(0,1,RUNTIME_CLASS(CMainView),CSize(0,0),pContext);
SetActiveView((CView*)m_wndSplitterTop.GetPane(0,0));

return TRUE;
}

目前我想固定顶部的高度与左部的宽度,应该如何做,一定要建立CMySplitterWnd吗?
...全文
164 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aled6825 2009-03-02
  • 打赏
  • 举报
回复
自己up
king820802 2009-03-01
  • 打赏
  • 举报
回复
重载CSplitterWnd,然后截获WM_LBUTTONDOWN消息
Eleven 2009-03-01
  • 打赏
  • 举报
回复
WM_GETMINMAX什么的,忘记了,你查一下MSDN
aled6825 2009-03-01
  • 打赏
  • 举报
回复
按照网上说的在CFrameWnd里响应WM_SIZE事件
可为什么还是错误呢?
void CChildFrame::OnSize(UINT nType, int cx, int cy)
{
CMDIChildWnd::OnSize(nType, cx, cy);
m_wndSplitterTop.SetRowInfo(0,100,0);
m_wndSplitterTop.SetColumnInfo(0,cx,0);
m_wndSplitterMain.SetColumnInfo(0,cy-100,0);
m_wndSplitterMain.SetRowInfo(0,200,0);
m_wndSplitterTop.RecalcLayout();
m_wndSplitterMain.RecalcLayout();
}
aled6825 2009-03-01
  • 打赏
  • 举报
回复
按照网上说的在CFrameWnd里响应WM_SIZE事件
可为什么还是错误呢?
void CChildFrame::OnSize(UINT nType, int cx, int cy)
{
CMDIChildWnd::OnSize(nType, cx, cy);
m_wndSplitterTop.SetRowInfo(0,100,0);
m_wndSplitterTop.SetColumnInfo(0,cx,0);
m_wndSplitterMain.SetColumnInfo(0,cy-100,0);
m_wndSplitterMain.SetRowInfo(0,200,0);
m_wndSplitterTop.RecalcLayout();
m_wndSplitterMain.RecalcLayout();
}

15,979

社区成员

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

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