zoukankan      html  css  js  c++  java
  • VB中的GDI编程-1 设备环境DC

    设备环境

    GDI绘图是在设备环境上实施的,而我们使用GDI的基本步骤如下:

    1、获取或建立设备环境

    2、在设备环境中绘图

    3、释放设备环境

    那么接下来我们首先来了解下设备环境的获取、建立以及释放方法。之所以将释放方法放到前面来讲,是因为释放的方法与获取和建立的方法是相互对应的。我们常用的函数有以下一些:

    1 Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
    2 Public Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" ( _
    3     ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long
    4 Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
    5 Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    6 Public Declare Function GetDCEx Lib "user32" (ByVal hwnd As Long, ByVal hrgnclip As Long, ByVal fdwOptions As Long) As Long
    7 Public Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    8 Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
    9 Public Declare Function WindowFromDC Lib "user32" (ByVal hdc As Long) As Long

    上述API函数中,CreateDC函数使用到了一个数据结构DEVMODE,下面将该数据结构的定义方式列出:

     1 Public Type DEVMODE
     2         dmDeviceName As String * CCHDEVICENAME
     3         dmSpecVersion As Integer
     4         dmDriverVersion As Integer
     5         dmSize As Integer
     6         dmDriverExtra As Integer
     7         dmFields As Long
     8         dmOrientation As Integer
     9         dmPaperSize As Integer
    10         dmPaperLength As Integer
    11         dmPaperWidth As Integer
    12         dmScale As Integer
    13         dmCopies As Integer
    14         dmDefaultSource As Integer
    15         dmPrintQuality As Integer
    16         dmColor As Integer
    17         dmDuplex As Integer
    18         dmYResolution As Integer
    19         dmTTOption As Integer
    20         dmCollate As Integer
    21         dmFormName As String * CCHFORMNAME
    22         dmUnusedPadding As Integer
    23         dmBitsPerPel As Long
    24         dmPelsWidth As Long
    25         dmPelsHeight As Long
    26         dmDisplayFlags As Long
    27         dmDisplayFrequency As Long
    28 End Type

     以上函数中以Create开头的将会新创建一个设备环境DC,而Get开头的函数是通过窗体句柄获取相应窗体对应的DC对象。另外对于通过Create创建的设备环境,我们在最后释放时,是调用DeleteDC函数。而对于通过Get函数获取的DC对象需要使用ReleaseDC函数来完成释放。

    在VB6中,如果需要在窗体上绘图,我们可以直接使用窗体本身的hDC属性来获取;如果是在VBA或者其他不能直接获取DC对象的情况下,我们就需要使用以上所提供的函数来创建或获取相应的DC对象。

  • 相关阅读:
    Python 【第十三章】 Django 之 FORM
    Django-Model操作数据库(增删改查、连表结构)参考
    Python 【第十二章】 Django 之 Model 数据库操作
    Python 【第十一章】 Django模版
    Python 【第十章】 Django路由
    Ajax操作如何实现跨域请求 (JSONP和CORS实现Ajax跨域的原理)
    浏览器同源政策概述
    Python 【第九章】 Django基础
    python 2.7下的正则将中文分隔符去掉
    python time应用 之时间戳转换
  • 原文地址:https://www.cnblogs.com/alexywt/p/4807460.html
Copyright © 2011-2022 走看看