多种类型的视图集合CTabView

首先利用AppWizard建立工程,然后将视类的基类更改为CTabView,并将所有的CView更改为CTabView。

依次插入以CSrollView、CListView、CFormView、CEditView为基类的CView1、CView2、CView3、CView4,并在程序中进行引用:
intCTabViewTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

if (CTabView::OnCreate(lpCreateStruct) == -1)

return -1;

// TODO:  Add yourspecialized creation code here

AddView(RUNTIME_CLASS (CView1), _T("Scroll View"),100);

AddView(RUNTIME_CLASS (CView2), _T("List View"),101);

AddView(RUNTIME_CLASS (CView3), _T("Form View"),102);

AddView(RUNTIME_CLASS (CView4), _T("Edit View"),103);

return 0;

}

为了增强各类的显示效果,分别对加入的各个类型的视类进行程序设计。

在以CSrollView为基类的CView1中,增加CSroll相关的控制,并在OnDraw中进行图形的绘制。

在以CListView为基类的CView2中,更改List的显示风格

BOOL CView2::PreCreateWindow(CREATESTRUCT& cs)

{

// TODO: Add your specialized code here and/or call thebase class

cs.style|= LVS_REPORT;

return CListView::PreCreateWindow(cs);

}

并在OnInitialUpdate()中加入列表的初始化代码:

CListCtrl& wndList = GetListCtrl ();

wndList.SetExtendedStyle (LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES);

const int nColumns = 10;

int iColumn = 0;

// Insert columns:

for (iColumn = 0;iColumn < nColumns; iColumn++)

{

CStringstrColumn;

strColumn.Format(_T("Column %d"), iColumn + 1);

wndList.InsertColumn(iColumn, strColumn, LVCFMT_LEFT, 110);

}

// Insert items:

for (int i = 0; i < 10; i++)

{

const CString strItemFmt = _T("Item (%d, %d)");

CStringstrItem;

strItem.Format(strItemFmt, 1, i + 1);

int iItem = wndList.InsertItem (i, strItem, 0);

for (iColumn = 1; iColumn < nColumns; iColumn++)

{

strItem.Format(strItemFmt, iColumn + 1, i + 1);

wndList.SetItemText(iItem, iColumn, strItem);

}

}

在以CFormView为基类的CView3中,加入相应的资源控件并进行程序设计,在以CEditView为基类的CView4中,加入窗体文本初始化的代码。

最终软件界面:

【VS开发】学习VS2010 ------ 多种类型的视图集合CTabView的更多相关文章

  1. 【Java Web开发学习】Spring4整合thymeleaf视图解析

    [Java Web开发学习]Spring4整合thymeleaf视图解析 目录 1.简单介绍2.简单例子 转载:https://www.cnblogs.com/yangchongxing/p/9111 ...

  2. 吴裕雄--天生自然 JAVA开发学习:变量类型

    public class Variable{ static int allClicks=0; // 类变量 String str="hello world"; // 实例变量 pu ...

  3. Java开发学习(二十五)----使用PostMan完成不同类型参数传递

    一.请求参数 请求路径设置好后,只要确保页面发送请求地址和后台Controller类中配置的路径一致,就可以接收到前端的请求,接收到请求后,如何接收页面传递的参数? 关于请求参数的传递与接收是和请求方 ...

  4. BITED-Windows8应用开发学习札记之二:Win8应用常用视图设计

    感觉自我表述能力有欠缺,技术也不够硬,所以之后的Windows8应用开发学习札记的文章就偏向于一些我认为较难的地方和重点了多有抱歉. 上节课是入门,这节课就已经开始进行视图设计了. Windows应用 ...

  5. Android应用开发学习之表格视图

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 本文我们来学习一个使用表格视图的程序,下图是该程序的运行效果: 该程序主Activity文件内容如下: packag ...

  6. Rest API 开发 学习笔记(转)

    Rest API 开发 学习笔记 概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着 ...

  7. 【Cocos2d-X开发学习笔记】第29期:游戏中数据的存储(上)

    本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010 一般游戏中都需要记录玩家数据,便于玩家下次登录时 ...

  8. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

  9. Windows Phone 8初学者开发—第12部分:改进视图模型和示例数据

    原文 Windows Phone 8初学者开发—第12部分:改进视图模型和示例数据 第12部分:改进视图模型和示例数据 原文地址:http://channel9.msdn.com/Series/Win ...

随机推荐

  1. ibatis调用存储过程(无返回参数)

    ibatis调用存储过程例子: java: getSqlMapClientTemplate().insert(sql, paraMap) ibatis xml: <parameterMap id ...

  2. 013_STM32程序移植之_DS18B20

    013_STM32程序移植之_DS18B20 1. 测试环境:STM32C8T6 2. 测试模块:DS18B20模块 3. 测试接口: 1. DS18B20模块接口: DS18B20引脚        ...

  3. JS 定时器-setInterval、clearInterval、setTimeout

    在微信小程序里写的: // pages/splash/splash.js const app = getApp() Page({ data: { remainSecond: }, // 页面渲染完成后 ...

  4. Navicat创建数据库或导入数据库

    双击点亮数据库 导入数据库 点击开始

  5. 小米oj 重拍数组求最大和

     重排数组求最大和 序号:#34难度:困难时间限制:1000ms内存限制:10M 描述 假设有一个n元素的数组(数组的元素索引从1开始),针对这个数组有q个查询请求,每个请求由一对整数li,ri组成, ...

  6. shell脚本中${...}函数的用法总结

    ${...}在字符串中有非常多的用法: 1.${var} 限定变量. 如果一个变量名A是另一个变量名AB的前部分,那么,如果要在AB相连时,要得到A的值,就必须使用${var}限定. 如果变量名不会产 ...

  7. [Linux]安装kali虚拟机后忘记root密码

    1. 登录时,按e进入编辑模式 2. 编辑模式 修改 ro 修改为 rw 添加 init=/bin/bash 修改完按 F10 3. 选择recovery mode 回车 4.输入命令passwd 设 ...

  8. shell [ ] 和 [[ ]] 区别

    [参考文章]:shell if [[ ]]和[ ]区别 || && [参考文章]:Shell test 命令 1. [ ] 和 test test  等同于 [ ] 可用于判断某个条件 ...

  9. 面试题:this指针的指向,以及call、apply应用

    var a = 2; function test(){ var a = 4; console.log(this.a); this.a = 1; } test();//2 //这里为什么是2?因为调用t ...

  10. mysql主从复制原理及步骤

    原理: 1master开启bin-log功能,日志文件用于记录数据库的读写增删2需要开启3个线程,master IO线程,slave开启 IO线程 SQL线程,3Slave 通过IO线程连接maste ...