• Domingo 5 de Mayo de 2024, 04:43

Autor Tema:  Re: Evitar el parpadeo  (Leído 1669 veces)

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Evitar el parpadeo
« en: Viernes 7 de Febrero de 2003, 22:58 »
0
Hola colegas otra vez me encuentro con una pequeña duda, estoy creando un programa en el cual aparece un menu con botones como los de windows, el mouse, etc.

Mi problema es que para cambiar la apariencia del boton cuando se le hace el clic con el mouse, este debe ir junto con la actualizacion de los movimientos y estado del mouse, para saber si se a oprimido sobre el mismo o no, el problema que me surge de todo este embole que estoy armando es que el boton comienza a parpadear como loco, se que para evitar un poco el parpadeo, se le debe dar un retardo cn el delay(tiempo); Pero esto es insufisiente, y que solo reduce el parpadeo muy poquito y me sigue molestando, aparte, al posicionar el mouse sobre el boton, el puntero del muse se desaparece quedando debajo del boton, todo debido a las actializaciones que hacen las interrupciones del moiuse para saber su nueva posicion y estado.

Perdonenmen el embarullo, desearia poner a disposicion el fuente pero lamentablemente esta en mi maquina, asi que por ahora la persona inteligente que desee complicarse la vida ayudandolme no tendra mas ayuda que estas descripciones de mi problema.

Nuevamente digo mi problema mas brevemente y claro.

El boto parpadea si sesar, el mouse se oculta debajo de el al no tenerlo en mivimiento sobre el mismo, me esta voviendo loco y yo se que uno de ustedes sera muy cordial y compañero y estara dispuesto a ayudarme, prontito, a mas tardar mañana, colocare el fuente para que vean claramente cuel es mu situacion critica.

SALUDOS Y DISCULPENMEN POR TODO.

Gracias. :o
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Evitar el parpadeo
« Respuesta #1 en: Martes 11 de Febrero de 2003, 16:33 »
0
bueno de todos modos te voy a ayudar...
debes cambiar algunas ciosas del modo de la interfaz grafica, es decir debes ponerlo en sincronia con los barridos de pantalla, es decir a 60 hz generalmente,
lo segundo espero que estes trabajando el boton en una pagina de video diferente de la standart, para independizar las superposiciones y trabarlas de manera màs comoda... chao.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Quoyle

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Evitar el parpadeo
« Respuesta #2 en: Miércoles 19 de Febrero de 2003, 21:53 »
0
Hola Jonathan, en primer lugar, no hagas caso a juank, seguro que bromea cuando dice que no quieres compartir tu código B).

A mi modesto entender creo que juank ha resulto tus dudas, pero me gustaría añadir algunas posibilidades más.

Puede que el parpadeo este producido por el refresco, como comenta juank, pero como dices que solo se produce cuando haces click con el mouse pienso que puede tratarse de otro problema. El "rate" del mouse es rapidísimo, es decir, que cuando tu haces un click muy corto, estas mandando cientos de señales, por lo que provocas que tu programa responda a ellas produciendo el parpadeo. Esto se puede arreglar detectando cuando se suelta el botón en lugar de detectar cuando se pulsa, es decir, cuando pulsas el botón haces correr tu programa en un bucle, hasta que lo suelte y es entonces cuando realizas la acción. Consigues así que la acción solo se ejecute cuando sueltas el botón (como en Windows) y evitas el parpadeo (espero jejeje;)).

El otro problema también lo ha resuelto juank, es así como debe hacerse, utilizando varias páginas de video distintas de la standart. Sin embargo, puede que si no lo has planeado así desde el principio, sea bastante tedioso hacerlo ahora, por lo tanto puedes hacerlo de una forma mas "cutre", esto es: pintar el puntero del mouse al final, es decir, el puntero del mouse se pinta el último porque ¡siempre esta encima de todo!.

Bueno, espero haberte podido ayudar. Un saludo.
Actual Generation oOo Quoyle oOo Remember: Free your mind