LoadImage VB声明 Declare Function LoadImage& Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) Declare Function LoadImageBynum& Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As Long, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) 说明 载入一个位图、图标或指针 返回值 Long,执行成功则返回对象的一个句柄;零表示失败 参数表 参数 类型及说明 hInst Long,要从其中载入图象的DLL或应用程序模块或实例句柄。零表示装载一幅固有图象 lpsz String,欲载入图象的名字。如指定了hInst,就用这个参数指定资源或资源的标志符(标志符是一个长整数)。如hInst为空,而且已指定了LR_LOADFROMFILE,那么这个参数代表文件名(位图、图标或指针文件)。如果是个Long型值,这个参数就代表固有位图、图标或指针的编号 un1 Long,下述常数之一,指定了欲载入的图象类型:IMAGE_BITMAP, IMAGE_CURSOR, IMAGE_ICON n1,n2 Long,要求的图象宽度和高度。图象会根据情况自动伸缩。如设为零,表示用图象的默认大小 un2 Long,下述常数的任意组合,它们都在api32.txt文件中得到了定义: LR_DEFAULTCOLOR 以常规方式载入图象 LR_LOADREALSIZE 不对图象进行缩放处理。忽略n1和n2的设置 LR_CREATEDIBSECTION 如果指定了IMAGE_BITMAP,就返回DIBSection的句柄,而不是位图的句柄 LR_DEFAULTSIZE 如果n1和n2为零,就使用由系统定义的图象默认大小,而不是图象本身定义的大小 LR_LOADFROMFILE 如hInst为零,lpsz就代表要载入适当类型的一个文件的名字,仅适用于Win95 LR_LOADMAP3DCOLORS 将图象中的深灰、灰、以及浅灰像素都替换成COLOR_3DSHADOW,COLOR_3DFACE以及COLOR_3DLIGHT的当前设置 LR_LOADTRANSPARENT 与图象中第一个像素相符的所有像素都由系统替换 LR_MONOCHROME 将图象转换成单色 LR_SHARED 将图象作为一个共享资源载入。在NT 4.0中装载固有资源时要用到这个设置
Const LR_LOADFROMFILE = &H10 Const IMAGE_BITMAP = 0 Const IMAGE_ICON = 1 Const IMAGE_CURSOR = 2 Const IMAGE_ENHMETAFILE = 3 Const CF_BITMAP = 2 Private Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal dwImageType As Long, ByVal dwDesiredWidth As Long, ByVal dwDesiredHeight As Long, ByVal dwFlags As Long) As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function EmptyClipboard Lib "user32" () As Long Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long Private Sub Form_Load() Dim hDC As Long, hBitmap As Long 'Load the bitmap into the memory hBitmap = LoadImage(App.hInstance, "c:\windows\logow.sys", IMAGE_BITMAP, 320, 200, LR_LOADFROMFILE) If hBitmap = 0 Then MsgBox "There was an error while loading the bitmap" Exit Sub End If 'open the clipboard OpenClipboard Me.hwnd 'Clear the clipboard EmptyClipboard 'Put our bitmap onto the clipboard SetClipboardData CF_BITMAP, hBitmap 'Check if there's a bitmap on the clipboard If IsClipboardFormatAvailable(CF_BITMAP) = 0 Then MsgBox "There was an error while pasting the bitmap to the clipboard!" End If 'Close the clipboard CloseClipboard 'Get the picture from the clipboard Me.Picture = Clipboard.GetData(vbCFBitmap) End Sub
VB声明
Declare Function LoadImage& Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long)
Declare Function LoadImageBynum& Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As Long, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long)
说明
载入一个位图、图标或指针
返回值
Long,执行成功则返回对象的一个句柄;零表示失败
参数表
参数 类型及说明
hInst Long,要从其中载入图象的DLL或应用程序模块或实例句柄。零表示装载一幅固有图象
lpsz String,欲载入图象的名字。如指定了hInst,就用这个参数指定资源或资源的标志符(标志符是一个长整数)。如hInst为空,而且已指定了LR_LOADFROMFILE,那么这个参数代表文件名(位图、图标或指针文件)。如果是个Long型值,这个参数就代表固有位图、图标或指针的编号
un1 Long,下述常数之一,指定了欲载入的图象类型:IMAGE_BITMAP, IMAGE_CURSOR, IMAGE_ICON
n1,n2 Long,要求的图象宽度和高度。图象会根据情况自动伸缩。如设为零,表示用图象的默认大小
un2 Long,下述常数的任意组合,它们都在api32.txt文件中得到了定义:
LR_DEFAULTCOLOR 以常规方式载入图象
LR_LOADREALSIZE 不对图象进行缩放处理。忽略n1和n2的设置
LR_CREATEDIBSECTION 如果指定了IMAGE_BITMAP,就返回DIBSection的句柄,而不是位图的句柄
LR_DEFAULTSIZE 如果n1和n2为零,就使用由系统定义的图象默认大小,而不是图象本身定义的大小
LR_LOADFROMFILE 如hInst为零,lpsz就代表要载入适当类型的一个文件的名字,仅适用于Win95
LR_LOADMAP3DCOLORS 将图象中的深灰、灰、以及浅灰像素都替换成COLOR_3DSHADOW,COLOR_3DFACE以及COLOR_3DLIGHT的当前设置
LR_LOADTRANSPARENT 与图象中第一个像素相符的所有像素都由系统替换
LR_MONOCHROME 将图象转换成单色
LR_SHARED 将图象作为一个共享资源载入。在NT 4.0中装载固有资源时要用到这个设置
Const IMAGE_BITMAP = 0
Const IMAGE_ICON = 1
Const IMAGE_CURSOR = 2
Const IMAGE_ENHMETAFILE = 3
Const CF_BITMAP = 2
Private Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal dwImageType As Long, ByVal dwDesiredWidth As Long, ByVal dwDesiredHeight As Long, ByVal dwFlags As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long
Private Sub Form_Load() Dim hDC As Long, hBitmap As Long
'Load the bitmap into the memory
hBitmap = LoadImage(App.hInstance, "c:\windows\logow.sys", IMAGE_BITMAP, 320, 200, LR_LOADFROMFILE)
If hBitmap = 0 Then
MsgBox "There was an error while loading the bitmap"
Exit Sub
End If
'open the clipboard
OpenClipboard Me.hwnd
'Clear the clipboard
EmptyClipboard
'Put our bitmap onto the clipboard
SetClipboardData CF_BITMAP, hBitmap
'Check if there's a bitmap on the clipboard
If IsClipboardFormatAvailable(CF_BITMAP) = 0 Then
MsgBox "There was an error while pasting the bitmap to the clipboard!"
End If
'Close the clipboard
CloseClipboard
'Get the picture from the clipboard
Me.Picture = Clipboard.GetData(vbCFBitmap)
End Sub