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?