Да у неё даже и HWND то нету. значит это вообще не окно. а значит оно просто описывает как надо рисовать изображение. А рисовать оно его будет нигде больше как на ФОРМЕ! (или там в чём он у тебя лежит) вот тот HDC брать и надо. Только надо учесть смещенние изображения. И сместиться оно (а пикселах) на Left/Top соответственно. Вот типа вот этого:
Private Declare Function GetDC Lib "user32" (ByVal hwnd 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
'image size
Const iw As Long = 40
Const ih As Long = 40
Dim l As Long
Dim t As Long
Dim h As Long 'hDC
Private Sub Command1_Click()
Me.ScaleMode = 3 'pixel
l = Image1.Left
t = Image1.Top
BitBlt Picture1.hDC, 0, 0, iw, ih, Me.hDC, l, t, vbSrcCopy
End Sub
Private Declare Function GetDC Lib "user32" (ByVal hwnd 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 Sub Form_Load()
'image size
Dim iw As Long
Dim ih As Long
Dim l As Long
Dim t As Long
Dim h As Long 'hDC
Me.ScaleMode = 3 'pixel
ih = Image1.Height
iw = Image1.Width
l = Image1.Left
t = Image1.Top
BitBlt Picture1.hDC, 0, 0, iw, ih, Me.hDC, l, t, vbSrcCopy
End Sub
в Picture1 какой-то левый кусок картинки с экрана попадает, короче попадает не то что мне нужно
Имхо эта простая ошибка графики. В батоне всё ок.
А если вот так попробывать:
у меня работает на ура:
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 Sub Form_Load()
'image size
Dim iw As Long
Dim ih As Long
Dim l As Long
Dim t As Long
Picture1.AutoRedraw = True '!!
Show '!!
Me.Refresh ' !!!
Me.ScaleMode = 3 'pixel
ih = Image1.Height
iw = Image1.Width
l = Image1.Left
t = Image1.Top
BitBlt Picture1.hDC, 0, 0, iw, ih, Me.hDC, l, t, vbSrcCopy
Picture1.Refresh '!!!
End Sub