Страница: 1 |
Здравствуйте все. Есть вопрос по PictureBox. И ещё вопрос, если масштабировать не этим алгоритмом, а через StretchBlt, от возникают искажения цвета, новый рисунок получается как на компьютерной томографии, с какими-то цветными окантовками и разводами. Почему это может быть? Заранее спасибо за ответы.
Попробуй создать логический Битмап с помощью GreateCompatibleBitmap и когда нужно рисовать на устройство с помощью BitBlt. Примера у меня нет. Так что тебе прямая дорога в поисковик. Страница: 1 |
Вопрос: PictureBox
Добавлено: 09.02.04 16:40
Автор вопроса: cresta
Как можно "закрепить" рисунок, перерисованный из одного 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
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #1
Добавлено: 10.02.04 08:28
Номер ответа: 2
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #2
Добавлено: 10.02.04 11:04
Спасибо, буду разбираться