Option Explicit Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function BitBlt Lib "gdi32.dll" (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 Const SRCCOPY As Long = &HCC0020Private Sub Command1_Click() Dim PicDC As Long Dim Wpic As Long, Hpic As Long
小弟我想把一个人物图,blt到另一幅风景图里。之前使用的是picturebox,可是这样我的键盘响应不能实现。很苦恼。还有就是DC使什么?是储存的图形内容吗?那我该怎么调用?怎么改变它?
Option Explicit
Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function BitBlt Lib "gdi32.dll" (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 Const SRCCOPY As Long = &HCC0020Private Sub Command1_Click()
Dim PicDC As Long
Dim Wpic As Long, Hpic As Long
Wpic = Picture1.Width
Hpic = Picture1.Height
'取得图片框DC
PicDC = GetDC(Picture2.hwnd)
Call BitBlt(PicDC, 0, 0, Wpic, Hpic, Picture1.hdc, 0, 0, SRCCOPY)
'释放PicDC
Call ReleaseDC(Picture2.hwnd, PicDC)End SubPrivate Sub Form_Load() Picture2.Width = Picture1.Width
Picture2.Height = Picture1.HeightEnd Sub