zoukankan      html  css  js  c++  java
  • 设备内容(DC)

    • 定义:
      • 设备内容(简称为「DC」)实际上是GDI内部保存的数据结构。设备内容与特定的显示设备(如视讯显示器或打印机)相关。
    • 作用:
      • 当您想在一个图形输出设备(诸如屏幕或者打印机)上绘图时,您首先必须获得一个设备内容(或者DC)的句柄。将句柄传回给程序时,Windows就给了您使用设备的权限。然后您在GDI函数中将这个句柄作为一个参数,向Windows标识您想在其上进行绘图的设备。
    • 分类(摘自这里):
      • Client DC
        • A client DC is associated with a particular window, and will give the developer access to the client area of the target window. This is the type of DC that is used most often by application programmers, and is the easiest to handle. This is the type of DC that should be used when the WM_PAINT message is handled. This is also the only DC that will be explained with any amount of detail.
      • Window DC
        • A window DC is associated with a particular window, and allows the developer to draw on any part of the target window, including the borders and the caption. This is the type of DC that is sent with WM_NCPAINT message.
      • Memory DC
        • A Memory DC is a DC that exists only in memory, and is not associated with any window. This is the only type of DC that can hold a user defined bitmap (HBITMAP). Memory DC's are very useful for caching images, and for use with backbuffers on complicated displays.
      • General Device DC
        • For lack of a better name, this type of DC covers all of the other devices that it is possible to get a DC from. For instance, a printer or a plotter, the entire display monitor, or even custom device that a cutting-edge technology company may invent that does not even exist yet. The fact is, a DC can be created for any device that supports the required API functions defined by Microsoft.
    • 取得设备内容句柄
      • 在处理WM_PAINT消息时,使用BeginPaintEndPaint(窗口无效区域)
      • 非WM_PAINT消息时,使用GetDCReleaseDC(窗口显示区域,hWnd==NULL则为显示器DC)
      • 非WM_NCPAINT消息时,使用GetWindowDCReleaseDC(整个窗口区域,包括非显示区)
      • 取得某个设备(显示器或打印机)的DC句柄,使用CreateDCDeleteDC
      • 取得一个「信息内容」的句柄,使用CreateICDeleteDC
      • 取得一个「内存设备内容」的句柄,使用CreateCompatibleDCDeleteDC
      • metafile设备内容
    • 参考:《Windows程序设计》
  • 相关阅读:
    栈:逆波兰表达式(后缀表达式)
    栈:实现综合计算器(中缀表达式)
    栈:数组模拟栈
    链表(Linked List):单向环形链表
    单链表常见面试题
    链表(Linked List):双向链表
    链表(Linked List): 单链表
    队列和环形队列
    稀疏数组
    Linux命令--pushd和popd
  • 原文地址:https://www.cnblogs.com/dahai/p/2101600.html
Copyright © 2011-2022 走看看