Originariamente inviato da magnifico09
Come posso fare per "stretchare" l'immagine catturata?
Ti ho indicato il metodo PaintPicture(), usa quello:
1) Aggiungi un secondo PictureBox (Picture2)
2) un terzo pulsante (Command3)
3) copia questo codice:
codice:
Private Sub Command3_Click()
Dim hWnd As Long
Dim hDC As Long
hWnd = GetDesktopWindow()
hDC = GetWindowDC(hWnd)
Picture1.Appearance = 0 ' Flat
Picture2.Appearance = 0 ' Flat
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
Picture2.Width = Screen.Width
Picture2.Height = Screen.Height
Picture1.Visible = True (*)
Picture2.Visible = True (*)
' copio l'immagine catturata su Picture2
BitBlt Picture2.hDC, 0, 0, Screen.Width, Screen.Height, hDC, 0, 0, vbSrcCopy
Picture2.Picture = Picture2.Image ' rendo l'immagine persistente
' rimpicciolisco (stretch) l'immagine in base alle dimensioni di Picture1
Picture1.PaintPicture Picture2, 0, 0, Picture1.Width, Picture1.Height, , , , , vbSrcCopy
Picture1.Picture = Picture1.Image ' rendo l'immagine persistente
ReleaseDC hWnd, hDC
End Sub
Ora il Command2 salverà l'immagine rimpicciolita.
(*) Nota che ho impostato Visible=True per entrambi i PictureBox, ma è solo perchè tu possa vedere e capire cosa avviene, poi potrai nasconderle entrambe.