Salve a tutti
In un TextBox carico un immagine come sfondo,
con il codice:
Dove Sfondo è una PictureBoxcodice: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
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?

Rispondi quotando