Ti ho indicato il metodo PaintPicture(), usa quello:Originariamente inviato da magnifico09
Come posso fare per "stretchare" l'immagine catturata?
1) Aggiungi un secondo PictureBox (Picture2)
2) un terzo pulsante (Command3)
3) copia questo codice:
Ora il Command2 salverà l'immagine rimpicciolita.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
(*) Nota che ho impostato Visible=True per entrambi i PictureBox, ma è solo perchè tu possa vedere e capire cosa avviene, poi potrai nasconderle entrambe.
![]()

Rispondi quotando