zoukankan      html  css  js  c++  java
  • MFC笔记(1)CPaintDC, CClientDC

    http://imcc.blogbus.com/logs/1962781.html

    1.CClientDC


    CClientDC(客户区设备上下文)用于客户区的输出,它在构造函数中封装了GetDC(),在析构函数中封装了ReleaseDC()函数。一般在响应非窗口重画消息(如键盘输入时绘制文本、鼠标绘图)绘图时要用到它。用法是:

    CClientDC dc(this);//this一般指向本窗口或当前活动视图

    dc.TextOut(10,10,str,str.GetLength());

    //利用dc输出文本,如果是在CScrollView中使用,还要注意调

    //用OnPrepareDC(&dc)调整设备上下文的坐标。

    2.CPaintDC

    CPaintDC 用于响应窗口重绘消息(WM_PAINT)是的绘图输出。CPaintDC在构造函数中调用BeginPaint()取得设备上下文,在析构函数中调用 EndPaint()释放设备上下文。EndPaint()除了释放设备上下文外,还负责从消息队列中清除WM_PAINT消息。因此,在处理窗口重画时,必须使用CPaintDC,否则WM_PAINT消息无法从消息队列中清除,将引起不断的窗口重画。CPaintDC也只能用在WM_PAINT消息处理之中。

    3.CDC

    直接使用CDC的例子是内存设备上下文,例如:

    CDC dcMem; //声明一个CDC对象

    dcMem.CreateCompatibleDC(&dc); //创建设备描述表

    pbmOld = dcMem.SelectObject(&m_bmBall);//更改设备描述表属性

    …//作一些绘制操作


    dcMem.SelectObject(pbmOld);//恢复设备描述表的属性

    dcMem.DeleteDC(); //可以不调用,而让析构函数去删除设备描述表

  • 相关阅读:
    mysql(一) 关联查询的方式
    SpringBoot2.0(五) CORS跨域
    SpringBoot2.0(四) 远程调试
    SpringBoot2.0(三) 文件上传
    SpringBoot2.0(二) 配置文件多环境
    SpringBoot2.0(一) mybatis
    Java InputStream转File
    git 命令学习
    reids 中出现 (error) MOVED 原因和解决方案
    ibm 的 heapanalyzer 分析器
  • 原文地址:https://www.cnblogs.com/cutepig/p/1378550.html
Copyright © 2011-2022 走看看