1,486
社区成员
发帖
与我相关
我的任务
分享
Dim memDC As Long, hBmp As Long, oldDib As Long
Dim memDC2 As Long, hBmp2 As Long, oldDib2 As Long
Dim iW As Long, iH As Long
Private Sub Command1_Click()
StretchBlt imgHDC, 0, 0, iW, iH, memDC, 0, 0, iW, iH, vbSrcCopy
End Sub
Private Sub Command2_Click()
StretchBlt imgHDC, 0, 0, iW, iH, memDC2, 0, 0, iW, iH, vbSrcCopy
End Sub
Private Sub Form_Load()
Dim tmPic As StdPicture
Set tmPic = LoadPicture("C:\001.jpg")
imgHDC = Picture1.hdc
Dim bmp As BITMAP
hBmp = tmPic.Handle
Call GetObject(hBmp, Len(bmp), bmp)
iW = bmp.bmWidth
iH = bmp.bmHeight
memDC = CreateCompatibleDC(imgHDC)
oldDib = SelectObject(memDC, hBmp)
'内存图副本
'//////////////////////////////////////////////////////
memDC2 = CreateCompatibleDC(imgHDC)
hBmp2 = CreateCompatibleBitmap(memDC2, iW, iH)
oldDib2 = SelectObject(memDC2, hBmp2)
BitBlt memDC2, 0, 0, iW, iH, memDC, 0, 0, vbSrcCopy
End Sub
hBmp2 = CreateCompatibleBitmap(memDC2, iW, iH)
'// 先把这句改了, CreateCompatibleBitmap 的第一个参数不能用 CreateCompatibleDC 返回的dc做参数
'// 其它的再说
Dim dskDC As Long
dskDC = GetDC(0)
memDC2 = CreateCompatibleDC(dskDC)
hBmp2 = CreateCompatibleBitmap(dskDC, iW, iH)
ReleaseDC 0, dskDC
memDC2 = CreateCompatibleDC(imgHDC)
hBmp2 = CreateCompatibleBitmap(imgHDC, iW, iH)
谢谢楼上两位少侠,呵呵。 看来是我失误。 如上两种方法,我发现都可以。 看来得去补一下这个CreateCompatibleBitmap函数,看看它的参数到底是何说法。再次感谢!