扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
图1 |
//成员变量声明 CFixSplitterWnd m_wndSplitterH; //用于横向切割 CFixSplitterWnd m_wndSplitterV; //用于纵向切割 BOOL m_bCreateSplitter; //分割窗体的实现 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { //对整个主框架进行混合分割视图 BOOL bResult=m_wndSplitterV.CreateStatic(this,1,2); ASSERT(bResult); m_wndSplitterH.CreateStatic(&m_wndSplitterV,4,1,WS_CHILD | WS_VISIBLE,m_wndSplitterV.IdFromRowCol(0,1)); //创建各自子窗片的对应的视图 m_wndSplitterV.CreateView(0,0,RUNTIME_CLASS(CSceneView),CSize(600,600),pContext); m_wndSplitterH.CreateView(0,0,RUNTIME_CLASS(CPitchView),CSize(100,100),pContext); m_wndSplitterH.CreateView(1,0,RUNTIME_CLASS(CYawView),CSize(100,100),pContext); m_wndSplitterH.CreateView(2,0,RUNTIME_CLASS(CRollView),CSize(100,100),pContext); m_wndSplitterH.CreateView(3,0,RUNTIME_CLASS(CControlView),CSize(100,100),pContext); //设置窗格的初始化的大小 m_wndSplitterV.SetRowInfo(0,IDEAL_RAWHEIGHT,0); m_bCreateSplitter=TRUE; //激活sceneview使得其可以接受命令消息 m_wndSplitterV.SetActivePane(0,0,NULL); return bResult; } //主框架窗体大小发生变化,调节相应的窗体大小 void CMainFrame::OnSize(UINT nType, int cx, int cy) { CMDIFrameWnd::OnSize(nType, cx, cy); CRect rect; GetClientRect(rect); if (m_bCreateSplitter) { m_wndSplitterV.SetColumnInfo(0,rect.Width() *3/4,10); m_wndSplitterV.SetColumnInfo(1,rect.Width() *1/4,10); m_wndSplitterH.SetRowInfo(0,rect.Height() /6,10); m_wndSplitterH.SetRowInfo(1,rect.Height() /6,10); m_wndSplitterH.SetRowInfo(2,rect.Height() /6,10); m_wndSplitterH.SetRowInfo(3,rect.Height()/2,10); } m_wndSplitterV.RecalcLayout(); m_wndSplitterH.RecalcLayout(); } |
void CFixSplitterWnd::OnMouseMove(UINT nFlags, CPoint point) { CWnd::OnMouseMove(nFlags, point); //防止鼠标出现拖动状 // CSplitterWnd::OnMouseMove(nFlags, point); //鼠标会在窗体边界出现拖动状 } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者