⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 win32api.bas

📁 内窥镜图案工作站有说明 有文档 有应用程序
💻 BAS
字号:
Attribute VB_Name = "Win32API"
'************************************************************************
'*                                                                      *
'*             VB file:   Win32API... by Sonic Wu                       *
'*             Created:   11/2001 by Sonic Wu                           *
'*            Modified:                                                 *
'*                                                                      *
'*         Description: The Function in Win32SDK                        *
'*                                                                      *
'*                                                                      *
'*                                                                      *
'*  Copyright (C) 1999 - 2001 Daheng Imavision.  All rights reserved.   *
'*  Latest version can be downloaded from http://www.daheng-image.com   *
'*                                                                      *
'************************************************************************
Option Explicit


'this is equivalent to ascii string "BM"
Global Const BMP_MAGIC_COOKIE As Integer = 19778

'//BITMAP DEFINES (from mmsystem.h)
Type BITMAPFILEHEADER        '14 bytes
        bfType As Integer '"magic cookie" - must be "BM"
        bfSize As Long
        bfReserved1 As Integer
        bfReserved2 As Integer
        bfOffBits As Long
End Type

Type BITMAPINFOHEADER        '40 bytes
   biSize As Long
   biWidth As Long
   biHeight As Long
   biPlanes As Integer
   biBitCount As Integer
   biCompression As Long
   biSizeImage As Long
   biXPelsPerMeter As Long
   biYPelsPerMeter As Long
   biClrUsed As Long
   biClrImportant As Long
End Type

Type RGBQUAD
    Red As Byte
    Green As Byte
    Blue As Byte
    reserved As Byte
End Type

Type BITMAPINFO
    header As BITMAPINFOHEADER
    bmiColors(0 To 255) As RGBQUAD
End Type

    
'    Type BitMap
'        bmType As Long
'        bmWidth As Long
'        bmHeight As Long
'        bmWidthBytes As Long
'        bmPlanes As Integer
'        bmBitsPixel As Integer
'        bmBits As Long
'    End Type
'

Type LOGPALETTE
    palVersion As Integer
    palNumEntries As Integer
    palPalEntry(0 To 255) As RGBQUAD
End Type


Global Const BI_RGB  As Long = 0&
'*********************************************************************************************
'''''''''''''''''''''''''''''''''''''
'BitBlt Consts
Global Const SRCCOPY = &HCC0020
Global Const SRCINVERT = &H660046

''''''''''''''''''''''''''''''''''''''
' Copy bitmaps from one area to another
Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, _
        ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, _
        ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long) As Long
'*********************************************************************************************
'SetDIBitsToDevice Consts
Global Const DIB_RGB_COLORS = 0
Global Const DIB_PAL_COLORS = 1

'The SetDIBitsToDevice function sets the pixels in the specified rectangle
'on the device that is associated with the destination device context using color data
'from a device-independent bitmap (DIB).
'    将一幅与设备无关位图的全部或部分数据直接复制到一个设备.这个函数在设备中定义了一个目标矩形,以便接收位图数据.它也在DIB中定义了一个源矩形,以便从中提取数据
'    返回值:    Long,执行成功则返回扫描线的数量,零表示失败.
'    参数:      hdc          Long,一个设备场景的句柄.该场景用于接收位图数据
'               x,y          Long,用逻辑坐标表示的目标矩形的起点
'               dx,dy        Long,用目标矩形的设备单位表示的宽度及高度
'               SrcX,SrcY    Long,用设备坐标表示的源矩形在DIB中的起点
'               Scan         Long,Bits数组中第一条扫描线的编号.如BitsInfo之BITMAPINFOHEADER部分的biHeight字段是正数,那么这条扫描线就会从位图的底部开始计算;如果是负数,就从顶部开始计算
'               NumScans     Long,欲复制的扫描线数量
'               Bits         Any,指向一个缓冲区的指针.这个缓冲区包含了以DIB格式描述的位图数据;这种格式是由BitsInfo指定的
'               BitsInfo     BITMAPINFO,对Bits DIB的格式和颜色进行描述的一个结构
'               wUsage       Long,下述常数之一
'                            DIB_PAL_COLORS    颜色表是一个整数数组,其中包含了与目前选入hdc设备场景的调色板相关的索引
'                            DIB_RGB_COLORS    颜色表包含了RG颜色
Declare Function SetDIBitsToDevice Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal Scan As Long, ByVal NumScans As Long, Bits As Any, BitsInfo As BITMAPINFO, ByVal wUsage As Long) As Long
    
'**********************************************************************************************

'    获取指定窗口的设备场景
'    返回值:    Long,指定窗口的设备场景句柄,出错则为0
'    参数:      hwnd    Long,将获取其设备场景的窗口的句柄.若为0,则要获取整个屏幕的DC
Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long

'    释放由调用GetDC或GetWindowDC函数获取的指定设备场景.它对类或私有设备场景无效(但这样的调用不会造成损害)
'    返回值    Long,执行成功为1,否则为0
'    参数      hwnd    Long,要释放的设备场景相关的窗口句柄
'              hdc     Long,要释放的设备场景句柄
Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, hDC As Long) As Long
'**********************************************************************************************

Global Const BITSPIXEL = 12
Global Const SIZEPALETTE = 104

Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal Index As Long) As Long
'**********************************************************************************************

Declare Function SelectPalette Lib "gdi32" (ByVal hDC As Long, ByVal hPalette As Long, _
    ByVal bForceBackground As Long) As Long

Declare Function RealizePalette Lib "gdi32" (ByVal hDC As Long) As Long

Declare Function CreatePalette Lib "gdi32" (pPal As LOGPALETTE) As Long

Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

'**********************************************************************************************
Type TPoint
  x As Long
  y As Long
End Type

Type TRect
    left As Long
    top As Long
    right As Long
    bottom As Long
End Type

Declare Function ClientToScreen Lib "user32" (ByVal hWnd As Long, p As TPoint) As Long

'    返回指定窗口客户区矩形的大小.
'    返回值:  Long,非零表示成功,零表示失败
'    参数:    hwnd          Long,欲计算大小的目标窗口
'             lpRect        RECT,指定一个矩形,用客户区域的大小载入(以像素为单位)
'    注解:    lpRect的左侧及顶部区域肯定会被这个函数设为零
Declare Function GetClientRect Lib "user32" (ByVal hWnd As Long, ByRef lpRect As TRect) As Long

'**********************************************************************************************
Global Const RDW_INVALIDATE = 1
Global Const RDW_INTERNALPAINT = 2
Global Const RDW_ERASE = 4
Global Const RDW_VALIDATE = 8
Global Const RDW_NOINTERNALPAINT = &H10
Global Const RDW_NOERASE = &H20
Global Const RDW_NOCHILDREN = &H40
Global Const RDW_ALLCHILDREN = &H80
Global Const RDW_UPDATENOW = &H100
Global Const RDW_ERASENOW = &H200
Global Const RDW_FRAME = &H400
Global Const RDW_NOFRAME = &H800

Declare Function RedrawWindow Lib "user32" (ByVal hWnd As Long, ByVal lprcUpdate As Long, _
    ByVal hrgnUpdate As Long, ByVal Flags As Long) As Long
'**********************************************************************************************
Declare Function GetDesktopWindow Lib "user32" () As Long
'**********************************************************************************************

'    hWnd:    对话框父窗口句柄,对话框显示在VB窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口.
'    Text:    欲显示的信息字符串.
'    Caption: 对话框标题字符串.
'    Type:    对话框类型常量.
'    该函数的返回值为整数,用于对话框按钮的识别.
Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hWnd As Long, ByVal lpText As Long, ByVal lpCaption As Long, ByVal uType As Long) As Long


Public Const GWL_WNDPROC = -4
Public Const WM_SIZE = &H5
Public Const WM_MOVE = &H3
Public Const WM_NCACTIVATE = &H86

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (ByVal pDestination As Long, ByVal Source As Long, ByVal Length As Long)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -