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


Автор: Spectre 18.1.2006, 15:18
Я знаю что поставив объект picture я от мерцания избавлюсь, но у меня проблема. Мое изображение не имеет фона и когда я его вставляю в image то все нормально, а как только в picture то у картинки свой фон появляется что мне мешает. Не подскажете как убрать мерцание у image или убрать фон у picture?

Автор: СВА 19.1.2006, 06:10
Цитата

Рисовать надо на *.picture при чём *.AutoRedraw = True, чтобы графика не мигала.
Все картинки полей и всяких там юнитов загружаем в массив PictureBox'ов. picP(*).picture = loadpicture(...), чтобы вообще ничего не тормозило (и у всех эл. массива *.AutoSize = True)!
Чтобы нарисовать прозрачную картику (к примеру, с фоном vbRed), надо делать так:
TBLT Form1.hDC, 0, 0, picP(*).Width, picP(*).Height, picP(*).hDC, 0, 0, picP(*).Width, picP(*).Height, vbRed

При этом в модуле объяви:
Declare Function TBLT Lib "Msimg32.dll" Alias "TransparentBlt" ( _
ByVal hdcDest As Long, ByVal nXOriginDest As Long, _
ByVal nYOriginDest As Long, ByVal nWidthDest As Long, _
ByVal nHeightDest As Long, ByVal hdcSrc As Long, _
ByVal nXOriginSrc As Long, ByVal nYOriginSrc As Long, _
ByVal nWidthSrc As Long, ByVal nHeightSrc As Long, _
ByVal crTransparent As Long) As Boolean

Автор: BorisVorontsov 21.1.2006, 15:14
Цитата(Spectre @ 18.1.2006, 15:18 Найти цитируемый пост)

Не подскажете как убрать мерцание у image или убрать фон у picture?


Два изображения, одно из которых - маска в виде чёрного котура.

Код

                BitBlt picMain.hdc, 0, 0, picMain.Width, _
                    picMain.Height, picSrcMask.hdc, 0, 0, vbMergePaint
                
                BitBlt picMain.hdc, 0, 0, picMain.Width, _
                    picMain.Height, picSrc.hdc, 0, 0, vbSrcAnd

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