Option Explicit Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long Private 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) As Long Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long Private 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 Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As LongConst LR_LOADFROMFILE = &H10 Const IMAGE_BITMAP = 0 Const LR_CREATEDIBSECTION = &H2000 Private Type BITMAP '14 bytes bmType As Long bmWidth As Long bmHeight As Long bmWidthBytes As Long bmPlanes As Integer bmBitsPixel As Integer bmBits As Long End Type Private Sub Form_Load() Picture1.AutoRedraw = True End SubPrivate Sub Command1_Click() Picture1.Picture = LoadPicture(App.Path + "\1.bmp") End SubPrivate Sub Command2_Click() Dim hMemdc As Long, hbmp As Long, holdbmp As Long, hBitmap As Long Dim bm As BITMAP Dim i As Integer hBitmap = LoadImage(App.hInstance, App.Path + "\1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE Or LR_CREATEDIBSECTION) hMemdc = CreateCompatibleDC(Picture1.hdc) SelectObject hMemdc, hBitmap GetObject hBitmap, Len(bm), bm BitBlt Picture1.hdc, 0, 0, bm.bmWidth, bm.bmHeight, hMemdc, 0, 0, vbSrcCopy Picture1.Refresh
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private 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) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private 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
Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As LongConst LR_LOADFROMFILE = &H10
Const IMAGE_BITMAP = 0
Const LR_CREATEDIBSECTION = &H2000
Private Type BITMAP '14 bytes
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type
Private Sub Form_Load()
Picture1.AutoRedraw = True
End SubPrivate Sub Command1_Click()
Picture1.Picture = LoadPicture(App.Path + "\1.bmp")
End SubPrivate Sub Command2_Click()
Dim hMemdc As Long, hbmp As Long, holdbmp As Long, hBitmap As Long
Dim bm As BITMAP
Dim i As Integer hBitmap = LoadImage(App.hInstance, App.Path + "\1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE Or LR_CREATEDIBSECTION)
hMemdc = CreateCompatibleDC(Picture1.hdc)
SelectObject hMemdc, hBitmap
GetObject hBitmap, Len(bm), bm BitBlt Picture1.hdc, 0, 0, bm.bmWidth, bm.bmHeight, hMemdc, 0, 0, vbSrcCopy
Picture1.Refresh
DeleteDC hMemdcEnd Sub