Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: PictureBox Добавлено: 09.02.04 16:40  

Автор вопроса:  cresta

Здравствуйте все. Есть вопрос по PictureBox.
Как можно "закрепить" рисунок, перерисованный из одного PictureBox'а в другой. Установка AutoRedraw = True ничего не даёт :( когда уводишь рисунок за край экрана и потом возвращаешь его назад, то рисунок стирается. Может чего не так сделал, вот код:
    Dim pX As Single, pY As Single, hColor As Long
    Dim hSource As Long, hDest As Long
    Dim X As Long, Y As Long, nWidth As Long, nHeight As Long, _
        xSrc As Long, ySrc As Long, nSrcWidth As Long, nSrcHeight As Long
    Dim dx As Single, dy As Single, stp As Long
    dx = Frm2.Picture1.Width / Picture1.Width
    dy = Frm2.Picture1.Height / Picture1.Height
    If dx > dy Then
        stp = dx
    Else
        stp = dy
    End If
    Picture1.AutoRedraw = True
    hDest = GetDC(Picture1.hwnd)
    hSource = Frm2.Picture1.hdc
    pX = Picture1.Width / Screen.TwipsPerPixelX: pY = Picture1.Height / Screen.TwipsPerPixelY
    For X = 0 To pX
        For Y = 0 To pY
            hColor = GetPixel(hSource, X * stp, Y * stp)
            If hColor = -1 Then Exit For
            SetPixel hDest, X, Y, hColor
        Next Y
    Next X
    ReleaseDC Picture1.hwnd, hDest

И ещё вопрос, если масштабировать не этим алгоритмом, а через StretchBlt, от возникают искажения цвета, новый рисунок получается как на компьютерной томографии, с какими-то цветными окантовками и разводами. Почему это может быть? Заранее спасибо за ответы.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #1
Добавлено: 10.02.04 08:28

Попробуй создать логический Битмап с помощью GreateCompatibleBitmap и когда нужно рисовать на устройство с помощью BitBlt.

Примера у меня нет. Так что тебе прямая дорога в поисковик.

Ответить

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 10.02.04 11:04
Спасибо, буду разбираться

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам