Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Canvas sobre el escritorio

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Canvas sobre el escritorio Responder citando

Utilizo el siguiente código para implementar un cursor con hilos (dos lineas que se cruzan donde esta situado el cursor, similar al de algunos programas de dibujo).

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{

TMouse * Raton;

TPoint P1 = Raton->CursorPos;
TPoint P2=P1;

while (true)
{
HDC Desktop;
TCanvas *Desktopcanvas = new TCanvas;
Desktop = GetWindowDC (GetDesktopWindow());
DesktopCanvas->Handle = Desktop;

if (P1.x!=P2.x || P1.y!=P2.y){
DesktopCanvas->Refresh();
DesktopCanvas->MoveTo(0, P2.y);
DesktopCanvas->LineTo(Screen->Width, P2.y);
DesktopCanvas->MoveTo(P2.x, 0);
DesktopCanvas->LineTo(P2.x, Screen->Height);
}
P2=P1;
P1=Raton->CursorPos;
delete DesktopCanvas;
::DeleteObject(DesktopDC);

}

return 0;
}

El problema es que al mover el ratón no se borran las lineas dibujadas anteriormente, y me va pintando toda la pantalla. No me sirve la funcion Invalidate() porque no estoy pintando sobre un Form ni nada así ¿Cómo puedo solucionalo? .
Volver arriba
Mensaje    Asunto: Responder citando

¡Hola!

Yo hago algo parecido pero para hacer un scroll (texto en movimiento). A mi me funciona prefectamente y la única diferencia con respecto a lo tuyo es que yo, primero pinto y despues hago el Refresh(), mientras que tu primero haces el Refresh() y luego pintas. Mira a ver si es eso.

Salu2. Wink
Volver arriba
Mensaje    Asunto: Responder citando

Muchas gracias, pero me sigue haciendo lo mismo.
Volver arriba
Mensaje    Asunto: Responder citando

Hola.
Seguramente este tema lo tengais olvidado, hace más de 1 año de esto... pero yo lo acabo de ver y me viene estupendamente el código.... pero repintando la pantalla de forma correcta. ¿conseguisteis arreglarlo?


Gracias.
_________________
Entonces el bibliotecario miró a los libros enfurecido y les gritó ¡¡ OOOK !!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.