• Jueves 14 de Noviembre de 2024, 08:08

Autor Tema:  Problemas De Parpadeo Al Usar Invalidaterect  (Leído 1731 veces)

kasper

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Problemas De Parpadeo Al Usar Invalidaterect
« en: Jueves 1 de Abril de 2004, 18:26 »
0
Hola :hola:

La duda es como sigue:

Estoy haciendo un programa parecido a un Paint de Windows  :comp: . Ahora supongamos un rectangulo R pintado en la pantalla y que vamos a arrastrar con el raton.  :huh:

Lo que yo hago para conseguir este efecto segun vamos arrastrandolo, es invalidar el rectangulo ocupado por R en su ultima posicion y pintar R en la nueva posicion.  :blink:

O sea que si X,Y es la posicion de R en la pantalla, W es el ancho, H el alto de R y X2,Y2 el punto donde mover R, la cosa queda:

InvalidateRect( CRect( CPoint(X,Y), CSize(W,H) ), TRUE )
FrameRect( CRect( CPoint(X2,Y2), CSize(W,H) ) )

Bueno, pues con esto consigo un muy feo efecto de parpadeo.  :angry:

¿Alguna idea para evitar este parpadeo?

Muchas gracias   :D

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Problemas De Parpadeo Al Usar Invalidaterect
« Respuesta #1 en: Jueves 1 de Abril de 2004, 19:47 »
0
Intenta q solo repinte la pantalla al largar el click del mouse y no en el OnMouseMove. Ya se q la aplicacion sera "mas trucha" pero es lo q hay.

Salu2!!!

navisoft

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
    • http://www.latindevelopers.com
Re: Problemas De Parpadeo Al Usar Invalidaterect
« Respuesta #2 en: Sábado 17 de Abril de 2004, 00:12 »
0
Otra alternativa para eliminar el parpadeo es utilizar el doublebuffering en tus aplicaciones.


aqui te adjunto un archivo zipeado que utiliza este metodo de pintado en memoria.

el programa es parte de un ariculo que pubicaré en  Programacion.uni.cc en los proximos dias.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.