MFC程序实现窗口分割,视图快捷插入控件和插入列表
2013-06-23 20:30
288 查看
将视图中插入列表:
1.创建一个MFC应用程序,在MFC Wizard中,生成的类选项,如图
2.选择CListView作为基类
3.在CXXView.cpp(XX为你的程序名)重写虚函数OnInitialUpdate()。在函数中添加以下代码。
编译运行程序便可在视图中得到表格。至于对表格的各种操作,这篇博客介绍的比较全面http://blog.csdn.net/zhgflx/article/details/6895204。
窗口分割的实现:
在实现表格特征以后,我们想把视图空出一部分来插入控件或是利用于别的方面,这时我们就需要利用CSplitterWnd来将窗口分为两个或两个以上的视图。
1.在CChildFrame类中重写OnCreatClient()函数(注:网上许多帖子都说是在CMainFrame中重写,但是我在运行的时候会触发断电,搬到CChildFrame后解决了这个问题。)。
2.在CChildFrame类中添加变量 CSplitterWnd m_wndSplitter。
3.添加一个新的视图类,命名为CDialogView,添加如下代码
即可将视图分为两个视图,切分条可拖动。如果想要固定切分条,和限制其拖动范围等等操作,具体见/article/2907557.html
视图快捷插入控件:
有时候我们想要在视图中插入控件,一般都需要自己绘制,这样很麻烦。有没有什么更好的办法呢?这时候我们就需要用到CFormView,它可以使我们把视图当作对话框一样使用了。
上一个功能实现中我们新建了一个类,在我们新建类的时候选基类为CFormView,生成后查看我们的资源视图dialog,发现多了一个IDD_DIALOGVIEW,这个dialog便是我们需要插入控件的视图。是不是方便许多了呢?
1.创建一个MFC应用程序,在MFC Wizard中,生成的类选项,如图
2.选择CListView作为基类
3.在CXXView.cpp(XX为你的程序名)重写虚函数OnInitialUpdate()。在函数中添加以下代码。
GetListCtrl().ModifyStyle(0,LVS_REPORT|LVS_EDITLABELS); //List-View Window Styles GetListCtrl().SetExtendedStyle(LVS_EX_GRIDLINES |WS_VSCROLL |LVS_EX_FLATSB|LVS_EX_HEADERDRAGDROP); ////在视图中插入列 int col=1; int row=0; int i; ////插入列 for(i=1;i<=20;i++) { GetListCtrl().InsertColumn(col,_T("123"),LVCFMT_LEFT,70,-1); col++; } //插入行 CString str; LVITEM lvi; for(i=1;i<=50;i++) { lvi.mask=LVIF_IMAGE|LVIF_TEXT; str.Format(_T("%d"),i); lvi.iItem=i; lvi.iSubItem=0; lvi.pszText=(LPTSTR)(LPCTSTR)str; lvi.iImage=i; GetListCtrl().InsertItem(&lvi); }
编译运行程序便可在视图中得到表格。至于对表格的各种操作,这篇博客介绍的比较全面http://blog.csdn.net/zhgflx/article/details/6895204。
窗口分割的实现:
在实现表格特征以后,我们想把视图空出一部分来插入控件或是利用于别的方面,这时我们就需要利用CSplitterWnd来将窗口分为两个或两个以上的视图。
1.在CChildFrame类中重写OnCreatClient()函数(注:网上许多帖子都说是在CMainFrame中重写,但是我在运行的时候会触发断电,搬到CChildFrame后解决了这个问题。)。
2.在CChildFrame类中添加变量 CSplitterWnd m_wndSplitter。
3.添加一个新的视图类,命名为CDialogView,添加如下代码
BOOL bCreateSpltr = m_wndSplitter.CreateStatic( this, 2, 1); // COneView and CAnotherView are user-defined views derived from CMDIView m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CDialogView), CSize(100,100),pContext); m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CtestnewView), CSize(0,0), pContext); return (bCreateSpltr); return CMDIChildWndEx::OnCreateClient(lpcs, pContext);
即可将视图分为两个视图,切分条可拖动。如果想要固定切分条,和限制其拖动范围等等操作,具体见/article/2907557.html
视图快捷插入控件:
有时候我们想要在视图中插入控件,一般都需要自己绘制,这样很麻烦。有没有什么更好的办法呢?这时候我们就需要用到CFormView,它可以使我们把视图当作对话框一样使用了。
上一个功能实现中我们新建了一个类,在我们新建类的时候选基类为CFormView,生成后查看我们的资源视图dialog,发现多了一个IDD_DIALOGVIEW,这个dialog便是我们需要插入控件的视图。是不是方便许多了呢?
相关文章推荐
- 一个MFC小程序界面的实现思路(窗口分割)
- 通过按钮控件实现MDI新建子窗口(MFC自动生成的视图、文档、子框架共用)
- MFC 视图分栏,分割窗口,在一个窗口设置对话框
- 实现单文档程序中分割窗口
- [VC/MFC]一条语句实现程序运行时隐藏窗口
- 利用管道技术实现将printf重定向到MFC对话框程序的编辑框控件中去
- [VC/MFC]实现程序运行时隐藏窗口 (多种方法,推荐方法2)
- MFC 控件随窗口同步变大的实现
- 问题解决——MFC SDI程序 CFormView中控件随窗口缩放
- VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)
- MFC分割窗口的实现
- MFC 列表视图控件List Control 使用一
- 怎么实现MFC窗口的最大化以及控件随最大化发生位置变动原因
- MFC的窗口分割的设计与实现以及CSplitterWnd 类分析
- VS2010编写MFC程序,调整窗口大小和实现窗口最大化、最小化方法。
- MFC编程入门之二十八(常用控件:列表视图控件List Control上)
- VS2010 MFC中 窗口分割的实现
- VC项目开发之单文档多视图实现-非分割窗口[转]
- MFC基于单文档分割视图后子窗口点击编辑框获得相应的操作
- 在MFC单文档程序中,怎样由子窗口控件调用父窗口中的控件