Newsgroup: it.comp.lang.visual-basic
Titolo: aiutino grazie...

ho un problemino molto semplice:
come posso copiare negli appunti l'interno di una picturebox?
lo so che e' un problema gia' piu volte visto, ma ho un urgenza atroce...
Grazie
 Erminio Sirtori

 lo so che e' un problema gia' piu volte visto, ma ho un urgenza atroce...
Ok Procedi con Quanto Segue......
Inserisci la Tua PictureBox (Picture1) e un Pulsante Command1
.....>>>>
Option Explicit
Private Type RETTANGOLO
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x
As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal
hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long)
As Long
Private Const DESTCOPIA = &HCC0020
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long)
As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC As
Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal
hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As
Long
Private Declare Function OpenClipboard Lib "USER32" (ByVal hWnd As Long) As
Long
Private Declare Function CloseClipboard Lib "USER32" () As Long
Private Declare Function SetClipboardData Lib "USER32" (ByVal wFormat As
Long, ByVal hMem As Long) As Long
Private Declare Function EmptyClipboard Lib "USER32" () As Long
Private Const BMP = 2
Private Function CopiaPicNegliAppunti(ByRef Oggetto As Object) As Boolean
Dim lhDC As Long
Dim BMPnuova As Long
Dim BMPvecchia As Long
Dim LarghezzaPixel As Long
Dim AltezzaPixel As Long
    lhDC = CreateCompatibleDC(Oggetto.hDC)
    If (lhDC <> 0) Then
        LarghezzaPixel = Oggetto.ScaleX(Oggetto.ScaleWidth,
Oggetto.ScaleMode, vbPixels)
        AltezzaPixel = Oggetto.ScaleY(Oggetto.ScaleHeight,
Oggetto.ScaleMode, vbPixels)
        BMPnuova = CreateCompatibleBitmap(Oggetto.hDC, LarghezzaPixel,
AltezzaPixel)
        If (BMPnuova <> 0) Then
            BMPvecchia = SelectObject(lhDC, BMPnuova)
            BitBlt lhDC, 0, 0, LarghezzaPixel, AltezzaPixel, Oggetto.hDC, 0,
0, DESTCOPIA
            SelectObject lhDC, BMPvecchia
            OpenClipboard 0
            EmptyClipboard
            SetClipboardData BMP, BMPnuova
            CloseClipboard
        End If
            DeleteObject lhDC
    End If
End Function
Private Sub Command1_Click()
    CopiaPicNegliAppunti Picture1
End Sub
By Utente Win2k

 ha scritto nel messaggio
news:oYWl8.7496$S52.2...@news2.tin.it...

BOH devo essere rincoglionito ma io ho provato per scrupolo....Utente win2k
mi hai fatto fare anche un progettino apposta!!!....mi fai venire mille
dubbi...
SE hai una picture box chiamata pic1...vb6 sp5 come me...(cavolo mi fai
venire dubbi amico!)
Private Sub Command1_Click()
    Clipboard.SetData pic1.Picture
End Sub
a me funziona!!!!!
funzionerà anche quello di utente....ma non è una complicazione inutile??
boh!...ma guarda se uno mi deve mettere sti dubbi stamani!
:-)

 lo so che e' un problema gia' piu volte visto, ma ho un urgenza atroce...
Oltre a quanto gia' detto da Win2K, se non hai bisogno di cose particolari
puoi provare:
Clipboard.Clear
Clipboard.SetData Picture1.Picture, vbCFBitmap
per copiare l'immagine caricata nel picture box nelle sue dimensioni reali,
ovvero indipendentemente dal fatto che sia visualizzata interamente e
*senza* eventuale grafica disegnata via codice (metodi Line, ecc...)
oppure
Clipboard.Clear
Clipboard.SetData Picture1.Image, vbCFBitmap
per copiare solo la porzioni *visibile* di immagine ma *compresa* eventuale
grafica disegnata via codice
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 boh!...ma guarda se uno mi deve mettere sti dubbi stamani!
Infatti anch'io mi ricordavo che fosse una banalità (che tra l'altro bastava
cercarsi la risposta nella pagina di help della clipboard!).
Ciao