单文档多视图的实现方法
来源:互联网 发布:mt4软件怎么使用 编辑:程序博客网 时间:2024/05/22 04:28
本文利用 CMFCTabCtrl 实现多视图的选项卡式显示,程序截图如下:
第一步:新建两个对话框,并分别为其添加类 CFirstDlg、CSecondDlg;
第二步:分别对两个对话框的属性做如下设置:
NoInheritLayout True
Visible True
Style Child
第三步:在程序的View类头文件中包含两个对话框类的头文件,并分别为其声明一个变量:
CFirstDlg m_dlgFirst;CSecondDlg m_dlgSecond;
第四步:在程序的View类头文件中声明一个 CMFCTabCtrl 类型的变量m_wndTabs:
CMFCTabCtrl m_wndTabs;
第五步:在程序的View类的 OnCreate 函数中分别创建两个对话框、m_wndTabs,以及将对话框与 m_wndTabs 关联起来,代码如下:
CRect rectDummy;rectDummy.SetRectEmpty();if( !m_wndTabs.Create(CMFCTabCtrl::STYLE_3D_ONENOTE, rectDummy, this, 1, CMFCBaseTabCtrl::LOCATION_TOP) ){ TRACE0("未能创建Tab控件!"); return -1;}m_dlgFirst = new CFirstDLg();m_dlgSecond = new CSecondDlg();if( !m_dlgFirst->Create(IDD_DIALOG1, &m_wndTabs) || !m_dlgSecond->Create(IDD_DIALOG2, &m_wndTabs) ){ TRACE0("未能创建对话框!"); return -1;}UpdateFonts();m_wndTabs.AddTab( m_dlgFirst, "第一个", (UINT)0);m_wndTabs.AddTab( m_dlgSecond, "第二个", (UINT)1);m_wndTabs.EnableActiveTabCloseButton();
第六步:为程序的View类添加 WM_SIZE 消息响应,在消息的响应函数中设置m_wndTabs 的位置,代码如下:
m_wndTabs.SetWindowPos(NULL, -1, -1, cx, cy, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
第七步:为程序的View类添加函数 void UpdateFonts() ,在函数中分别设置对话框的字体,代码如下:
m_dlgFirst->SetFont(&afxGlobalData.fontRegular);m_dlgSecond->SetFont(&afxGlobalData.fontRegular);
好了,编译运行,就可以看到如开头图片所示的程序了。希望大家举一反三,想出更好的方法!
- 单文档多视图的实现方法
- VC单文档实现多视图的方法
- VC中实现单文档切换多视图的方法
- VC单文档实现多视图的方法
- VC单文档实现多视图的方法
- 单文档多视图的实现
- 单文档多视图的实现
- 单文档 多视图的实现
- 单文档多视图方法
- MFC 单文档工程 实现单文档多视图
- 单文档多视图切换方法
- 单文档多视图切换方法
- 如何实现单文档多视图?
- 单文档切分窗口实现多视图
- 单文档多视图
- MFC学习之路(七)实现多文档的单文档多视图
- 单文档多视图切换的解决办法
- 单文档多视图切换的解决办法
- 利用GDataXml解析xml
- 快速上手Android数据库操作
- ubuntu 10.04下的配置tftp服务器
- Sizeof与Strlen的区别与联系
- 数据库表的设计方法和原则(转载)
- 单文档多视图的实现方法
- source insight ns2
- delegate 委托一例
- f2py::演示在python中如何使用Fortran代码
- 网页中播放FLV文件的代码
- 爆笑云南十八怪
- vb俩数相乘
- ajax获取dataset数据 无刷新
- DataTable 修改列名 删除列 调整列顺序