Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > picturebox to cliboard


Автор: oal 10.7.2022, 20:40
Добрый день, подскажите пожалуйста, как копировать в буфер обмена рисунок usercontrol, если поверх него другие окна или статус рисунка равен usercontrol.visible = False?
Приведенный код выбран из USERCONTROL с дескриптором hDC:
Код

Public Sub CopyImage()
Dim w As Long, h As Long

    On Error GoTo ErrorHandler
    
    With picBuff
        .Cls
        w = ScaleWidth
        h = ScaleHeight
        ' Событие для извлечения пользовательской области данных для копирования графика
        RaiseEvent CopyImage(w, h)
        .Width = w
        .Height = h
        .AutoRedraw = True     ' График выводится на экран и в изображение, хранящееся в памяти
        ' Копируем данные в точечный рисунок
        If BitBlt(.hDC, 0, 0, w, h, hDC, 0, 0, vbSrcCopy) = ERROR_SUCCESS Then
            Err.Raise vbObjectError + 1, App.EXEName & "\CopyImage", "Скопировать график не удалось " & GetLastError & ")"
        End If
        .Refresh
    End With
    Clipboard.Clear
    Clipboard.SetData picBuff.Image, vbCFBitmap
    Exit Sub
    
ErrorHandler:
    Err.Raise Err.Number, App.EXEName & "\CopyImage", Err.Description
End Sub

Большое спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)