IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Déplacer une fenêtre en bsNone [FAQ]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Déplacer une fenêtre en bsNone
    Bonjour,
    J'ai une fenêtre dans une application qui necessite d'être en BorderStyle=bsNone
    La barre de titre disparait donc et il est impossible en l'état pour l'utilisateur de déplacer cette fenêtre.
    Existe t'il une propriété du Form qui autorise le déplacement de cette fenêtre par Drag & Drop ?
    Sinon, comment pourrais-je m'y prendre ?

    D'avance, Merci !

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Hello

    Coder les événements OnMouseDown, OnMouseMove, OnMouseUp:
    Sur OnMouseDown tu mémorises la position de la souris et le début du mouvement, sur OnMouseMove tu déplaces la fenêtre en tenant compte des coordonnées actuelles de la souris et de la position de départ.
    Sur ces événements le paramètre Shift contient l'état des boutons de la souris.

    Bon courage

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bool Flag = false;
    TPoint Start;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
    {
    Flag = true; 
    Start = Point(X,Y);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y)
    {
    if(Flag)
        {
        SetBounds(Left + X - Start.x, Top + Y - Start.y, Width, Height);
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
    {
    Flag = false;
    }
    A plus !

  4. #4
    CGi
    CGi est déconnecté
    Expert éminent
    Avatar de CGi
    Inscrit en
    Mars 2002
    Messages
    1 030
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 1 030
    Points : 8 202
    Points
    8 202
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
    {
       ReleaseCapture();
       SendMessage(Handle, WM_SYSCOMMAND, 0xF012, 0);
    }
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Merci à vous.
    finalement j'ai opté pour la solution de CGi qui est plus rapide.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 71
    Points : 75
    Points
    75
    Par défaut
    Bonjour

    Pour mon information personnelle, 0xF012 cela correspond à quoi ?
    J'ai trouvé SC_MOVE (0xF010) mais pas 0xF012.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déplacer une fenêtre
    Par r0t0r dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 16/10/2008, 18h51
  2. Evenement déplacer une fenêtre
    Par manu_b dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/07/2008, 16h13
  3. [WPF] Déplacer une fenêtre sans barre de titre
    Par tomlev dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 12/09/2007, 11h25
  4. [souris] déplacer une fenêtre sans bords
    Par if_zen dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 15/07/2006, 02h20
  5. Comment maximiser une fenêtre en bsnone ?
    Par deetox dans le forum Composants VCL
    Réponses: 11
    Dernier message: 17/11/2005, 21h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo