saludos,
estoy tratando de crear mi propiopountero de mouse para mostrar con directdraw dentro de un juego, para tal fin solo le diogo a nu dibujo que se dibuje tomando como coordenada la posicion del mouse en el formulario.
Para lograrlo tomo la posicion del mouse en pantalla a travez de Control.MousePosition y luego la convierto a posicion delmouse dentro de la forma usando
punto = forma.PointToClient(Control.MousePosition);
y luego solo dibujo en una surface secundaria de 640*480 para luego hacer blit en la superficie principal.
Todo me funciona OK!
pero cuando cambio de tamaño la forma el mouse no se comporta como yo esperaria y al parecer sigue conviertiendo las coordenadas como sino hubiese cambiado el tamaño de la forma.. lo cual ocaciona muchos problemas ya que aunque el mouse este por fuera de la froma al disminuir el tamaño, el dibujoi que se supone hace las veces de cursor se dibuja dentro de la forma en posiciones que no tienen que ver con la del mouse.. como se ve en el dibujo...
Que puedo hacer para solucionar esto?
alguien ha logrado mover el mouse dentro dentro de una superficie de directdraw
sin que el comportamiento del dibujo que hace las veces de mouse se altere al cambiar el tamaño de la forma?
agradezco cualquier idea.
Este es el codigo que recalcula la posicion:
p = forma.PointToClient(Control.MousePosition);
Este es el codigo donde se dibuja en la superficie secundaria:
surSecundaria.DrawFast(p.X, p.Y, sf,dff);
donde sf es el dibujo del cursor y dff son los flags para el color de mascara.
Este es el codigo donde se dibuja la superifie secundaria en la superficie principal:
rectangulo = new Rectangle(propietario.PointToScreen(new Point(0,0)),forma.ClientSize);
surPrimaria.Draw(rectangulo,surSecundaria , DrawFlags.Wait);
donde rectangulo es el area donde se debe dibnujar la superficie secundaria, es decir es el area de la forma.
forma.. pues es la forma
y propietario es el equivalente a forma.Control