Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    143

    [VB6] CaptureScreen in due tempi

    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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    143
    Ci sono riuscito impostando la secoda cattura con i valori

    BitBlt Pic.hdc, 0, 750, Pic.Width, Pic.Height, hDcs, Text1.Left + 30, 590, SRCCOPY

    però non ho capito perchè funziona

    Se qualcuno ne sa di queste cose, per favore risponda

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.