Visual Basic - ¿como quitar parpadeo?

Life is soft - evento anual de software empresarial
 
Vista:

¿como quitar parpadeo?

Publicado por Miguel Angel (26 intervenciones) el 10/03/2007 03:54:43
Hola amigos, tengo un control image dentro de un picturebox, esto para hacerle zoom y poderme desplazar, pero tengo un problema, al hacerle zoom (aumentar el Height y el Width) mi imagen parpadea, ¿¿¿hay algun modo de desaparecer este efecto de parpadeo que en realidad se nota bastante???. Gracias, espero su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿como quitar parpadeo?

Publicado por Benjo (679 intervenciones) el 10/03/2007 05:05:20
El parpadeo, obedece al refresco necesario de la imagen, el control image es un control less, y por lo tanto suele dejar ver esa clase de efectos, ya que no se programa directamente sobre su Device Context, como el PictureBox.

Puede ser que puedas evitar ese defectro con la API LockWindowUpdate

Esto impide el redibujado de todo el formulario
LockWindowUpdate form1.hwnd
' aquí crearias elefecto y el estiramiento del control image
Esto refresca todo el formulario
LockWindowUpdate 0
incluyendo el control image.

Para los zoom en imagenes, siempre es preferible trabajar con controles PictureBox y la API BitBlt y StretchBlt

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

Public Const SRCCOPY = &HCC0020
Public Const SRCAND = &H8800C6
Public Const SRCINVERT = &H660046
Public Const SRCPAINT = &HEE0086
Public Const SRCERASE = &H4400328
Public Const WHITENESS = &HFF0062
Public Const BLACKNESS = &H42

Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿como quitar parpadeo?

Publicado por LLE (136 intervenciones) el 12/03/2007 09:15:56
Lo que te han dicho es verdad, de todos modos prueba este ejemplo haber si lográs evitar el parpadeo

http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/257-redimensionar-grafico-con-el-mouse.htm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MOISES RAM

RE:¿como quitar parpadeo?

Publicado por MOISES RAM (1 intervención) el 17/06/2014 17:22:27
Yo lo solucione modificando la propiedad DoubleBuffered = true. Que se encuentra en el panel de propiedades del form.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar