vc 对话框分割窗口
2016-04-01 00:00
302 查看
摘要: 对话框分割窗口
对话框的分割可以进行自绘实现,不过太复杂麻烦。
mfc中CSplitterWnd类只能在框架窗口中使用,为了分割对话框,可以把框架窗口作为对话框的子窗口,具体可以这样做,
继承view,作为分割后的视图
在对话框OnCreate函数中添加:
在对话框OnInitDialog函数中添加:
最后在OnDestroy中释放
对话框的分割可以进行自绘实现,不过太复杂麻烦。
mfc中CSplitterWnd类只能在框架窗口中使用,为了分割对话框,可以把框架窗口作为对话框的子窗口,具体可以这样做,
//声明为对话框成员变量 CFrameWnd *m_pFrameWnd; CSplitterWnd *m_pSplitWnd;
继承view,作为分割后的视图
//继承CFormView 或者其他view class CLeftView:public CFormView { ...... }; class CRightView:public CFormView { ...... };
在对话框OnCreate函数中添加:
CString strMyClass = AfxRegisterWndClass(CS_VREDRAW|CS_HREDRAW, ::LoadCursor(NULL, IDC_ARROW), (HBRUSH)::GetStockObject(WHITE_BRUSH), ::LoadIcon(NULL, IDI_APPLICATION)); CRect rect; GetClientRect(&rect); m_pFrameWnd=new CFrameWnd; m_pFrameWnd->Create(strMyClass,_T(""), WS_CHILD, rect, this); m_pFrameWnd->ShowWindow(SW_SHOW); m_pSplitWnd=new CSplitterWnd; m_pSplitWnd->CreateStatic(m_pFrameWnd, 1, 2); m_pSplitWnd->CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(200, 200), NULL); m_pSplitWnd->CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(200, 200), NULL);
在对话框OnInitDialog函数中添加:
CRect rect; GetWindowRect(&rect); ScreenToClient(&rect); m_pFrameWnd->MoveWindow(&rect); m_pFrameWnd->ShowWindow(SW_SHOW);
最后在OnDestroy中释放
if(m_pSplitWnd) { m_pSplitWnd->DestroyWindow(); delete m_pSplitWnd; m_pSplitWnd=NULL; } //if(m_pFrameWnd) //{ // m_pFrameWnd->DestroyWindow(); // delete m_pFrameWnd; // m_pFrameWnd=NULL; //}
相关文章推荐
- ubuntu update error时
- JAVA获取指定格式日期
- 现代控制理论课件分享及课后思考题(初稿待完善)
- 现代控制理论课件分享及课后思考题(初稿待完善)
- 现代控制理论课件分享及课后思考题(初稿待完善)
- C++实验2-4-模拟ATM
- iOS设置圆角图片的方法及对比
- C++调用Python(基础)
- CODEVS 1576 最长严格上升子序列
- [javaEE] web应用的目录结构&配置虚拟主机
- 你将会是我一段不可或缺的路程,将会是另一个转折点
- [BZOJ2724][Violet 6]蒲公英(分块)
- leetcode Javascript HappyNumber
- spring事务详解
- C++实验2-3-两点距离
- Cannot create __weak reference in file using manual refrence counting.
- 计数问题
- 树莓派安装samba时出错
- 哲学初步认识5
- Java之输入