将视图中插入列表:

1.创建一个MFC应用程序,在MFC Wizard中,生成的类选项,如图

2.选择CListView作为基类

3.在CXXView.cpp(XX为你的程序名)重写虚函数OnInitialUpdate()。在函数中添加以下代码。

GetListCtrl().ModifyStyle(,LVS_REPORT|LVS_EDITLABELS);            //List-View Window Styles

    GetListCtrl().SetExtendedStyle(LVS_EX_GRIDLINES    |WS_VSCROLL |LVS_EX_FLATSB|LVS_EX_HEADERDRAGDROP);

    ////在视图中插入列
int col=;
int row=; int i;
////插入列 for(i=;i<=;i++)
{
GetListCtrl().InsertColumn(col,_T(""),LVCFMT_LEFT,,-);
col++;
}
//插入行
CString str;
LVITEM lvi;
for(i=;i<=;i++)
{
lvi.mask=LVIF_IMAGE|LVIF_TEXT; str.Format(_T("%d"),i);
lvi.iItem=i;
lvi.iSubItem=; 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, , );
// COneView and CAnotherView are user-defined views derived from CMDIView m_wndSplitter.CreateView(,,RUNTIME_CLASS(CDialogView), CSize(,),pContext);
m_wndSplitter.CreateView(,,RUNTIME_CLASS(CtestnewView), CSize(,), pContext);
return (bCreateSpltr);
return CMDIChildWndEx::OnCreateClient(lpcs, pContext);

即可将视图分为两个视图,切分条可拖动。如果想要固定切分条,和限制其拖动范围等等操作,具体见http://blog.csdn.net/netanimals/article/details/7496426

视图快捷插入控件:

有时候我们想要在视图中插入控件,一般都需要自己绘制,这样很麻烦。有没有什么更好的办法呢?这时候我们就需要用到CFormView,它可以使我们把视图当作对话框一样使用了。

上一个功能实现中我们新建了一个类,在我们新建类的时候选基类为CFormView,生成后查看我们的资源视图dialog,发现多了一个IDD_DIALOGVIEW,这个dialog便是我们需要插入控件的视图。是不是方便许多了呢?

MFC程序实现窗口分割,视图快捷插入控件和插入列表的更多相关文章

  1. WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里?

    原文:WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 在 WPF 程序中,我们有 Mouse.GetPosition(IInputElement relativeTo) 方法可以拿到鼠标 ...

  2. GridView控件中插入自定义删除按钮并弹出确认框

    GridView控件中插入自定义删除按钮,要实现这个功能其实有多种方法,这里先记下我使用的方法,以后再添加其他方法. 一.实现步骤 1.在GridView中添加模板列(TemplateField). ...

  3. Opencv+MFC获取摄像头数据,显示在Picture控件

    分为两步:OpenCV获取摄像头数据+图像在Picture上显示 第一步:OpenCV获取摄像头数据 参考:http://www.cnblogs.com/epirus/archive/2012/06/ ...

  4. SNF快速开发平台MVC-各种级联绑定方式,演示样例程序(包含表单和表格控件)

    做了这么多项目,经常会使用到级联.联动的情况. 如:省.市.县.区.一级分类.二级分类.三级分类.仓库.货位. 方式:有表单需要做级联的,还是表格行上需要做级联操作的. 实现:实现方法也有很多种方式. ...

  5. 【VS开发】单文档中往视图中加入控件

    [VS开发]单文档中往视图中加入控件 标签(空格分隔): [VS开发] 分隔视图的但文档窗口,要显示控件,推荐使用CFormView或者CCtrlView,前者和对话框的做法一致. 在MainFram ...

  6. delphi 一个自动控制机的硅控板检测程序,用多线程和API,没有用控件,少做改动就能用 用485开发

    一个自动控制机的硅控板检测程序,用多线程和API,没有用控件,少做改动就能用Unit CommThread; Interface Uses  Windows, Classes, SysUtils, G ...

  7. 在RichTextBox控件中插入图片

    . 在RichTextBox控件中插入图片 关键点 . 实现过程 .   public void ShowInsertImageDlg() {     OpenFileDialog OpenFileD ...

  8. 关于Winform控件调用插入点(光标)的用法

    我们自定义控件中可能会有一些光标的使用,比如插入文字和图片提示,下面是调用WIN32 API的光标用法 Winform控件调用插入点的用法 // 导入处理光标的 Windows 32 位 API // ...

  9. WPF 从程序集中检索图片资源stream给Image控件使用

    原文:WPF 从程序集中检索图片资源stream给Image控件使用 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/nihang1234/artic ...

随机推荐

  1. Hadoop概念学习系列之例子形象再谈Client、NameNode、元数据(三十一)

    Client相当于是送货人或提货人. NameNode相当于是仓库管理员. 元数据相当于是账本清单.

  2. CentOS安装Redis Sentinel HA集群

    安装了很多次,但是每次安装还要翻以前的配置,故列文备忘.下文依赖于2.x版本搭建主从节点实现基于sentinel机制的简单Redis HA(相对高可用Redis集群,真正高可用还要等3.0之后版本). ...

  3. nyoj 488 素数环

    素数环 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环. 为了简 ...

  4. gtest框架使用

    gtest文档说明: 由于公司单元测试的需要,自己花了大半天时间下载了一个gtest框架,使用了一些测试例子,总览了coderzh的玩转gtest测试框架,又看了几篇gtest博客,写下了以下内容,作 ...

  5. iOS---RunLoop深度剖析

    RunLoop 前言 RunLoop是iOS/OS开发中比较基础的一个概念,在苹果开发中用在事件处理,延迟加载,屏幕刷新等功能的处理,其实抛开语言,RunLoop是一个的架构模式,也就是RunLoop ...

  6. 关于local storage 和 session storage以及cookie 区别简析

    session storage 和local storage 都是存储在客户端的浏览器内: 一:关于COOKIE 的缺陷 * Cookie的问题 * 数据存储都是以明文(未加密)方式进行存储 * 安全 ...

  7. iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效

    ViewDidLoad中注册手势的部分代码如下: [cpp] view plaincopy UITapGestureRecognizer *oneTap = [[[UITapGestureRecogn ...

  8. 函数中的$input

    $input 在此属于一个特殊变量,一般在函数中用于接收输入 function FindWindowsFolder { $input | where-object {$_.Name -eq " ...

  9. .@RequestMapping 使用方法

    1.@RequestMapping  使用方法  SpringMVC中,@RequestMapping用来处理请求,比方XXX.do @RequestMapping("/aaa") ...

  10. iOS开发——网络编程OC篇&GCDAsyncSocket编程

    GCDAsyncSocket编程 同上一篇文章一样,这里也是使用Socket实现一个聊天室,但是这里使用的是一个常用的框架实现的:GCDAsyncSocket 一:导入这个框架 二:声明这个Socke ...