C/Visual C - Mover Imagen

 
Vista:

Mover Imagen

Publicado por Tino (7 intervenciones) el 20/10/2006 03:55:16
Deseo mover una imagen de un lugar a otro, pero de tal forma que se vaya trasladando secuencialmente, esto lo hago con un Timer en el cual se va modificando en este caso el Left de la Imagen, el problema surge cuando al moverse la imagen en esta comienzan a aparecer líneas, me han explicado que esto se debe a que cada vez que uno mueve la imagen lo que se hace es volverla a dibujar, lo que deseo es que alguien me explique de que forma puedo mover la imagen sin que me salgan esas líneas en medio de la imagen, todo esto es en C++.

Saludos
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:Mover Imagen

Publicado por fernando.gomez (1603 intervenciones) el 20/10/2006 08:04:38
Ok, para este problema de redibujado, necesitas emplear una técnica que se llama "doble búfer". Esta consiste en que dibujes toda la ventana en memoria, para después -al procesar WM_PAINT- solo hagas el intercambio de bits entre memoria y la ventana (swap). Esta técnica se emplea -por cierto- para la creación de videojuegos, donde la lógica de la aplicación dibuja en memoria y solo se hace un swap mínimo 24 veces por segundo.

Afortunadamente, esta técnica es tan empleada que hay miles de clases que te ayudarán a trabajar con doble búfer. Mi favorita es la clase CMemDC creada por Keith Rule, y que puedes encontrar en http://www.codeproject.com/gdi/flickerfree.asp. Es fácil de emplear, y bastante buena. El artículo apareció en noviembre de 1999, y está muy bien depurada.

Saludos.
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