Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Мигает картинка!!! Добавлено: 22.12.03 17:09  

Автор вопроса:  alp | Web-сайт: www.bigc-s.narod.ru

Когда картинка, находящаяся в элементе Image, двигается она мигает.

Как это исправить?

Ответить

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

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 22.12.03 17:27

Не использовать контрол Image.

Ответить

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



Вопросов: 12
Ответов: 21
 Web-сайт: dopesoft.narod.ru
 Профиль | | #2
Добавлено: 22.12.03 23:47

Поменяй свойтсво frmMain.AutoRedraw = True

Ответить

Номер ответа: 3
Автор ответа:
 Александр



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

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #3 Добавлено: 23.12.03 09:04

Используй PictureBox

Ответить

Номер ответа: 4
Автор ответа:
 AASoft



Вопросов: 86
Ответов: 920
 Профиль | | #4 Добавлено: 23.12.03 09:40

DirectX ili BitBlt ili StretchBlt

dva poslednih - API;)

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 23.12.03 14:31

К слову, DirectX тоже API ;)

2 последних - Win32API

Ответить

Номер ответа: 6
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #6
Добавлено: 23.12.03 18:40

идеальный вариант -DirectX (DirectDraw)

на втором месте -BitBlt, PlgBlt (only NT(!!!))

на третьем -движение пикчербоксов

ps это моё субъективное мнение :-)

Ответить

Номер ответа: 7
Автор ответа:
 AASoft



Вопросов: 86
Ответов: 920
 Профиль | | #7 Добавлено: 25.12.03 23:49

PlgBlt? eto che takoe???nikda ne slyshal...

kstati DX ne vsegda API(vsegda ni API?)

Ответить

Номер ответа: 8
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #8
Добавлено: 26.12.03 04:55

2 AASoft:

PlgBlt
Объявление в VB :
Declare Function PlgBlt Lib "gdi32" Alias "PlgBlt" (ByVal hdcDest As Long, lpPoint As POINTAPI, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long) As Long

Описание 
Функция копирует растр, преобразуя его в параллелограмм (=>можно и поворачивать, надо лишь написать алгоритм  поворота прямоугольника и юз его точки)

Параметр      Тип\Описание
hdcDest-long приёмный контекст устр-ва
lpPoint-pointapi превый элемент массива структур pointapi. Первая точка -левый верхний угол парал-ма, вторая-правый нижний, а третья-левый нижний угол. Четвертая точка расчитывается по первым трём.
hdcSrc -исх. конт. уст-ва
nXSrc, nYSrc- логич. корд. левого вехнего угла исх. изобр.
nWidth, nHeight- размены исх. изобр.
Вместо последних трёх параметров (hbmMask... ) я пишу нули

Ответить

Номер ответа: 9
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #9
Добавлено: 26.12.03 04:55

2 AASoft:

PlgBlt
Объявление в VB :
Declare Function PlgBlt Lib "gdi32" Alias "PlgBlt" (ByVal hdcDest As Long, lpPoint As POINTAPI, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long) As Long

Описание 
Функция копирует растр, преобразуя его в параллелограмм (=>можно и поворачивать, надо лишь написать алгоритм  поворота прямоугольника и юз его точки)

Параметр      Тип\Описание
hdcDest-long приёмный контекст устр-ва
lpPoint-pointapi превый элемент массива структур pointapi. Первая точка -левый верхний угол парал-ма, вторая-правый нижний, а третья-левый нижний угол. Четвертая точка расчитывается по первым трём.
hdcSrc -исх. конт. уст-ва
nXSrc, nYSrc- логич. корд. левого вехнего угла исх. изобр.
nWidth, nHeight- размены исх. изобр.
Вместо последних трёх параметров (hbmMask... ) я пишу нули

Ответить

Номер ответа: 10
Автор ответа:
 AASoft



Вопросов: 86
Ответов: 920
 Профиль | | #10 Добавлено: 27.12.03 00:02

nu vot, sheto novoe vyuchil...

pasibki.

Ответить

Номер ответа: 11
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #11 Добавлено: 27.12.03 12:16

Вот что на первом месте: пора на нормальную графику переходить! Создай пиктуребокс и GIF-файл, допустим, с 256-цветной палитрой или полноцветный JPG-файл, неважно, что там нарисовано, задай разрешение, допустим, 640x480, вставь в пиктуребокс дальше код такой добавь:

Private Type SAFEARRAYBOUND
    cElements As Long
    lLbound As Long
End Type
Private Type SAFEARRAY1D
    cDims As Integer
    fFeatures As Integer
    cbElements As Long
    cLocks As Long
    pvData As Long
    Bounds(0 To 0) As SAFEARRAYBOUND
End Type
Private Type SAFEARRAY2D
    cDims As Integer
    fFeatures As Integer
    cbElements As Long
    cLocks As Long
    pvData As Long
    Bounds(0 To 1) As SAFEARRAYBOUND
End Type
Private Declare Function VarPtrArray Lib "msvbvm50.dll" Alias "VarPtr" (Ptr() As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Type BITMAP
    bmType As Long
    bmWidth As Long
    bmHeight As Long
    bmWidthBytes As Long
    bmPlanes As Integer
    bmBitsPixel As Integer
    bmBits As Long
End Type
Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source
Private Declare Function GetObjectAPI Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long

Dim MPIC() As Byte, sa As SAFEARRAY2D, bmp As BITMAP

Private Sub Form_Load()
Dim I&, II&
Randomize

GetObjectAPI [pctbox].Picture, Len(bmp), bmp
With sa
    .cbElements = 1
    .cDims = 2
    .Bounds(0).lLbound = 0
    .Bounds(0).cElements = bmp.bmHeight
    .Bounds(1).lLbound = 0
    .Bounds(1).cElements = bmp.bmWidthBytes
    .pvData = bmp.bmBits
End With
CopyMemory ByVal VarPtrArray(MPIC), VarPtr(sa), 4

Me.Show
For II = 0 To [height]
    For I = 0 To [width] * [channels]
        MPIC(I, II) = 0
    Next
Next
End Sub

Поставь флажки в Advanced Optimizations и рисуй в буфере что хошь. Изображения хранить в других таких же массивах можно. Вроде бы ничего не забыл.

Ответить

Страница: 1 |

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



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