в JPEG кодом ВБ

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
eugene2005
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 30.10.2005 (Вс) 21:35
Откуда: от Верблюда!

в JPEG кодом ВБ

Сообщение eugene2005 » 09.12.2005 (Пт) 7:18

Код: Выделить всё
Option Explicit

Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
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 SRCCOPY = &HCC0020

Private Sub Command1_Click()
    Dim hDesk, hDeskDC
 
    hDesk = GetDesktopWindow()
    hDeskDC = GetDC(hDesk)
    BitBlt picShot.hDC, 0, 0, Width, Height, hDeskDC, 0, 0, SRCCOPY

    SavePicture picShot.Image, "C:\PicOut.bmp"

End Sub




Код: Выделить всё



Dim MyPic As StdPicture
Dim FileName As String
    FileName = FileDialog(Me, False, "Open Picture File", "Picture Files|*.jpg;*.jpeg;*.gif;*.bmp;*.wmp;*.rle;*.cur;*.ico;*.emf|All Files [*.*]|*.*")

    If Len(FileName) > 0 Then
        On Error Resume Next
        Set MyPic = LoadPicture(FileName)
        If Err.Number = 0 Then
            Set m_Image = New cImage
            m_Image.CopyStdPicture MyPic
            If mnuAutosize.Checked Then SetFormSize m_Image
            AdjustScrollBars m_Image
            Me.Caption = App.Title & " - " & FileTitleOnly(FileName)
            mnuSave(0).Enabled = True
            Else
            MsgBox "Can not load picture file" & vbCrLf & """" & FileName & """", vbExclamation, "File Load Error"
        End If
        Set MyPic = Nothing
    End If


как не сохраняя и не загружая БМП можно напрямую переслать картинку на Dim MyPic As StdPicture
set mypic = ????
как обойти этот loadpicture и что он вообще делает? есть ему альтернатива?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.12.2005 (Пт) 8:32

А сам как думаешь, что делает LoadPicture?

http://bbs.vbstreets.ru/viewtopic.php?p=17777#17777
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

eugene2005
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 30.10.2005 (Вс) 21:35
Откуда: от Верблюда!

Сообщение eugene2005 » 09.12.2005 (Пт) 9:14

hDesk = GetDesktopWindow()
hDeskDC = GetDC(hDesk)
BitBlt Picture2.hDC, 0, 0, Width, Height, hDeskDC, 0, 0, SRCCOPY

Dim MyPic As StdPicture
Set MyPic = PictureFromHandle(Picture2.hDC, 0)
Set m_Image = New cImage
m_Image.CopyStdPicture MyPic

всё равно не хочет принимать m_Image.CopyStdPicture


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Don Leno и гости: 122

    TopList