视图类CView

  在MFC"文档/视图"架构中,CView类是所有视图类的基类,它提供了用户自定义视图类的公共接口。在"文档/视图"架构中,文档负责管理和维护数据;而视图类则负责如下工作:

  (1) 从文档类中将文档中的数据取出后显示给用户;

  (2) 接受用户对文档中数据的编辑和修改;

  (3) 将修改的结果反馈给文档类,由文档类将修改后的内容保存到磁盘文件中。

CView中地位最重要的函数是virtual void OnDraw(CDC* pDC) = 0;从这个函数的声明可以看出,CView是一个纯虚基类。这个函数必须被重载,它通常执行如下步骤:

  (1) 以GetDocument()函数获得视图对应文档的指针;

  (2) 读取对应文档中的数据;

  (3) 显示这些数据。

开发环境Win7, VC6;

先建立一个MFC单文档工程;

看一下,自动生成的视类是CTest1View,继承自CView;

在视类的OnDraw函数中,已经有CDC* pDC,  设备描述表指针,可以用来进行各种输出工作;

添加如上图的一些代码,可以输出文字;

再添加一些输出的代码;整个OnDraw函数如下;

void CTest1View::OnDraw(CDC* pDC)
{CTest1Doc* pDoc = GetDocument();pDC->TextOut(200,200,"AAAAA,BBBBB");CString s="I am superman.";CRect rect(20,20,200,100);//设置区域pDC->DrawText(s,rect,DT_CENTER);s="I am daye daye daye";rect.DeflateRect(30,0);//减小框度rect.OffsetRect(0,80);//矩形向下平移pDC->DrawText(s,rect,DT_LEFT|DT_WORD_ELLIPSIS);COLORREF clr;int x=60,y=60;pDC->SetPixelV(x,y,RGB(255,0,0));clr=pDC->GetPixel(x,y);pDC->SetPixelV(x+150,y,clr);//像素点pDC->Rectangle(100,200,200,300);//矩形ASSERT_VALID(pDoc);// TODO: add draw code for native data here
}

可以输出文字,设置像素点颜色,画图等;效果如下;

窗口每次刷新,如被遮挡后重现;OnDraw会被自动调用;输出内容一直保持;

参考:

https://blog.csdn.net/cbnotes/article/details/43234165/

https://www.cnblogs.com/shenxiaolin/p/5295995.html

VC++ 视图类基本编程相关推荐

  1. Cocoa编程中视图控制器与视图类详解

    iPhone编程规则是:一个窗口,多个视图.UIView是iPhone屏幕上很多控件的基础类.每个iPhone用户界面都是由显示在UIWindow(这其实也是个特殊的UIView)内的众多UIView ...

  2. 一个由印度人编写的VC串口类

    软件介绍 一个由印度人编写的VC串口类(也是一种VC串口控件),他还配合这个类写了VC 串口通信方面的一些基础知识,如怎么用VC打开串口,如何对串口进行配置,读串口.写串口等. 这个类有点特别,它没有 ...

  3. VC++ CryptoAPI最基本编程

    作为一部分 Microsoft Windows 提供的应用程序编程接口 (API),CryptoAPI 提供了一组函数.这些函数允许应用程序在对用户的敏感私钥数据提供保护时,以灵活的方式对数据进行加密 ...

  4. matlab的矩阵编译器,MATLAB引擎方式实现VC与MATLAB混合编程

    VS2008是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便.Matlab是一款将数值分析.矩阵计算.信号处理和图形显 ...

  5. 一个印度人写的VC串口类CSerialCom(有串口基础介绍)

    http://www.vc-rs232.com/html/VC_SSCOM_Control/2011/0117/34.html 一个印度人写的VC串口类CSerialCom(有串口基础介绍) 软件介绍 ...

  6. vc与matlab联合,浅析VC与Matlab联合编程(二) - VC知识库文章

    浅析VC与Matlab联合编程(二) 作者:邓科 下载源代码 在"浅析VC与Matlab联合编程 (一)"中简单介绍了VC与matcom的接口编程,实现了VC调用matcom的一个 ...

  7. 框架、文档、视图类之间的调用关系

    在多文档MFC应用程序执行过程中,创建了多于一个的文档类.视图类.子框架类对象和一个主框架类.应用类对象.这些对象之间是通过一定的方式联系在一起的,在应用程序设计中,时常需要通过这些对象之间的关系来实 ...

  8. MFC文档、视图类的基本功能和二者基本关系

    MFC中,文档类的基本功能是负责管理数据:视图类的基本功能是显示数据: 二者的基本关系是,视图类有一个文档指针m_pDocument : 使用VC6新建一个单文档工程:生成的类中,xxxDoc这个是文 ...

  9. VC++下命名管道编程的原理及实现

    概述 管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机.命名管道(Named Pipes)是在管道服务器和一台或多台管道客户机之间进行 ...

最新文章

  1. 快速开发rails、==常用插件==
  2. 看下Linux 如何查看端口占用情况
  3. PBio-2018:如何设计可预测植物表型的微生物组
  4. mysql临时文件和临时表_理解mysql的临时表和文件排序
  5. springmvc十一: @RequestMapping-ant风格的url
  6. java实现条件编译
  7. python字符串库函数_Python标准库概览(1):string
  8. 土耳其电影公司选择Infortrend建立PB级数据存储基础设施
  9. 已知图片大小,让其在页面中垂直水平居中
  10. lingo的初步使用(集)
  11. 计算机考研去哪个城市,2019计算机考研:考研热门城市院校排名
  12. bat命令运行java程序
  13. 信息检索1.4.学术搜索引擎--百度学术搜索
  14. 大连IT产业解析(2人才篇)
  15. USB协议学习笔记 - 虚拟串口Virtual Port Com LED控制
  16. Altium Designer之如何显示标题栏内容
  17. 解决苹果无线鼠标、键盘或触控板无法被 Mac 识别的方法
  18. 应用程序无法正常启动(0xc000007b)解决办法
  19. Java Long类型对比
  20. vue3 + element-plus组件的国际化

热门文章

  1. springsecurity的工作原理
  2. @Value获取值和@ConfigurationProperties获取值比较||配置文件注入值数据校验
  3. coreldraw 复制填充渐变色
  4. jquery中eq和get
  5. Redis 作为缓存服务器的配置
  6. PyQt5 技术篇-设置滚动条拉动位置,scrollArea滚动条位置设置方法。
  7. Python 技巧篇-如何避免python报错导致强制关闭窗口
  8. Python 技术篇-1行代码实现语音识别,speech库快速实现简单的语音对话
  9. CTFshow 信息收集 web14
  10. 【Git】cannot create directory invalid argument