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 

Impedir el desplaz. del form fuera d la pantalla

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Impedir el desplaz. del form fuera d la pantalla Responder citando

Estoy intentando que un formulario no se me salga de la pantalla, es decir, que cuando se lo estoy moviendo con el raton al llegar al borde de la pantalla no me deje seguir arrastrandolo. Agradeceria que me ayudaseis.

Nota: no me vale poner un formulario maximizado por detras transparente y utilizar sus coordenadas

Gracias por anticipado.

Volver arriba
Mensaje    Asunto: Impedir el desplaz. del form fuera d la pantalla Responder citando

Es una buena pregunta, si
Volver arriba
Mensaje    Asunto: Impedir el desplaz. del form fuera d la pantalla Responder citando

Hola, para esto podemos usar el evento WM_WINDOWPOSCHANGING:

- Incluye en el .h de tu formulario lo siguiente:

private: // User declarations
    void __fastcall WMWindowPosChanging(TMessage &Msg);
public: // User declarations
  ...
  BEGIN_MESSAGE_MAP
     MESSAGE_HANDLER(WM_WINDOWPOSCHANGING, TMessage, WMWindowPosChanging);
  END_MESSAGE_MAP(TForm);


- Y en el .cpp lo siguiente:

//-----
void __fastcall TForm1::WMWindowPosChanging(TMessage &Msg)
{
    LPWINDOWPOS WinPos = reinterpret_cast<LPWINDOWPOS>(Msg.LParam);

    if (WinPos->x < 0)
        WinPos->x = 0;
    else if ((WinPos->x + WinPos->cx) > Screen->Width)
        WinPos->x = Screen->Width - WinPos->cx;

    if (WinPos->y < 0)
        WinPos->y = 0;
    else if ((WinPos->y + WinPos->cy) > Screen->Height)
        WinPos->y = Screen->Height - WinPos->cy;
}
//-----

Espero que te sirva.
Saludos.

Volver arriba
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.