更换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
最新推荐文章于 2021-09-15 13:12:28 发布
2009-04-16 下午 07:29