更换CSplitterWnd中的pane 在一些软件设置的界面中,通常左边是项目,右边是项目中具体的设置内容 更换CSplitterWnd中某一个pane(即某个格子中的view),应该如何实现? 一种简单的做法是,每次更改时,调用DeleteView删掉原来的view,再CreateView重建一个 CSplitterWnd没有提供更换view的成员方法 分析CSplitterWnd::CreateView,pane中view创建的关键代码是: 因此,修改view的子窗口id,即可将view与pane绑定或解绑,再配合窗口的显示或隐藏,即可实现view的更换 class CMySplitterWnd : public CSplitterWnd void CMySplitterWnd::ChangeView(int row, int col, CWnd * pView) pView->SetDlgCtrlID(IdFromRowCol(row, col)); RecalcLayout(); // 重画一下 另外注意,splitter window创建的时候仍然需要用CreateView在每个pane中创建最初的view,并设好大小,以完成pane的初始化 |
更换CSplitterWnd中的pane
最新推荐文章于 2026-05-10 06:09:37 发布
本文介绍了一种在CSplitterWnd中高效切换视图的方法。通过改变视图的子窗口ID,实现视图与窗格的绑定或解绑,从而避免了频繁创建和销毁视图带来的资源浪费。
2009-04-16 下午 07:29


1450

被折叠的 条评论
为什么被折叠?



