Antonio Linares wrote:
> ¿Hay forma de saber si algún mensaje de Windows no se ha procesado?
Hay quecrear un fichero login a disco con todos los mensajes que se reciben y con todos los valores que se devuelven. No es simple y además eso enlentece aún más el proceso de mensajes. Has probado a quitar el pintado a doble buffer como te indiqué anteriormente ?
Si, fue una de las primeras cosas que probé. Mejora en algunos casos, pero cuando el pintado es complejo me falla igual. Lo que más me llama la atención es que falla cuando la ventana es de otro proceso. Si es una ventana propia no falla nunca.
Respecto de ver generar el log con los eventos, tambien lo hice y creo que es lo que voy a hacer para ver si el proceso de pintado es interrumpido en algun momento. El punto es como saber si algún WM_PAINT no me ha llegado, que lo veo dificil.
> ¿Para que se usa la variable nPaintCount
Para que llamadas a <oWnd>:ReleaseDC() no destruyan el hDC antes de tiempo
Despues de preguntar lo miré y me dí cuenta para que se usa cuando vi ReleaseDC.
Seguiremos investigando. La verdad es que en el trabajo la plantilla todavia no está completa por las vacaciones y hoy los clientes me están matando!
Ya te comentaré las pruebas a ver si puedo hacer algo más. Sino tendré que mudar la programación a C, al menos del pintado. Lo que me tiene perdido es que es un pintado muy sencillo como para que falle. Y ese fallo tambien se produce en la barra de mensajes, que es un control bastante sencillo y no debería dar problemas. Cuando se trata de controles nativos de Windows no hay ningun problema, es decir que en algo estoy fallando.
Un saludo,
Carlos