Salve a tutti
In un TextBox carico un immagine come sfondo,
con il codice:


codice:
Private Sub ApplicaSfondo(destinazione As Object, sorgente As Object, modoPP As Boolean)

Dim DC As Long

destinazioneW = destinazione.Width
destinazioneH = destinazione.Height
DC = GetDC(destinazione.hwnd)

BitBlt DC, 0, 0, destinazioneW, destinazioneH, Sfondo.hdc, 0, 0, vbSrcAnd

DeleteDC DC

End Sub
Dove Sfondo è una PictureBox

Poi scrivo qualcosa e salvo in un un'altra PictureBox
lo sfondo e quanto ho scritto catturando lo schermo
in due distinte copie del TextBox perchè l'immagine
è più grande dell'altezza dello schermo, con il codice:

codice:
Private Sub CaptureScreen(Pic As PictureBox)
    
    Dim hDcs As Long
    'Recupera l'HDC dello schermo.
    hDcs = CreateDC("DISPLAY", "", "", 0)
    'Copia l'immagine dello schermo.
    'ATTENZIONE: il controllo PictureBox deve avere la proprietà "AutoRedraw" impostata su "True".
    
    BitBlt Pic.hdc, 0, 0, Pic.Width, Pic.Height - 300, hDcs, Text1.Left + 30, Text1.Top + 30, SRCCOPY
    
    Text1.Top = -180
    Text1.Text = Text1.Text & " "
            
    BitBlt Pic.hdc, 0, Pic.Height - 299, Pic.Width, Pic.Height, hDcs, Text1.Left + 30, Pic.Height - 299, SRCCOPY
         
    Text1.Top = 1
    Text1.Text = Text1.Text & " "
    
    Pic.Refresh
    
    DeleteDC hDcs
    
End Sub

ma la prima parte dello schermo va bene con il codice

BitBlt Pic.hdc, 0, 0, Pic.Width, Pic.Height - 300, hDcs,
Text1.Left + 30, Text1.Top + 30, SRCCOPY

La seconda parte, alzando il top del TextBox e mettendo così in risalto
l'ultima parte dell'immagine, invece non è copiata bene.

Secondo voi si può fare qualcosa?