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 :

Interception des messages windows


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 29
    Points : 30
    Points
    30
    Par défaut Interception des messages windows
    Bonjour,
    Je travaille en C++Builder 6.0 et je souhaite intercepter un message Windows qui ne correspond pas à un évènement pré-programmé (WM_MOVE en l'occurence, c'est à dire déplacement d'une fenêtre). Après avoir traité cet évènement, je souhaite effectuer l'action par défaut.
    Je fais ca très facilement en Delphi, mais je n'arrive pas à trouver l'équivalent de la syntaxe en C++Builder.

    Si vous avez une idée, et surtout un exemple, d'avance merci...

    Sunchai

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Une petite recherche sur les hook te donnera surement ce que tu cherches !

  3. #3
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour,
    il faut surcharger la méthode WndProc de la classe TForm
    en la redéclarant dans la partie public de ta classe TForm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     void __fastcall WndProc(TMessage& msg);
    à la fin du traitement de tes propres messages tu appelle la méthode Wndproc de la classse de base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TForm::WndProc(Message);
    Cordialement

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 29
    Points : 30
    Points
    30
    Par défaut J'ai trouvé !
    Voila la syntaxe que j'ai fini par trouver...

    Dans le fichier .h, dans la class de la Form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    protected :
      void __fastcall WMMove(TMessage & Message);
    private:	// User declarations
      __fastcall TTestPIDMainForm(TComponent* Owner);
    BEGIN_MESSAGE_MAP
      MESSAGE_HANDLER(WM_MOVE, TMessage, WMMove)
    END_MESSAGE_MAP(TComponent)
    dans le fichier .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void __fastcall TMainForm::WMMove(TMessage & Message)
    {
      if (AutreForm == NULL)
        return;
      // force la fenêtre AutreForm à se déplacer "de conserve" avec la   
      // fenêtre MainForm
      AutreForm->Left = ClientToScreen(TPoint(0,0)).x;
      AutreForm->Top = ClientToScreen(TPoint(0,0)).y;
    }
    Et ca baigne !

    Pour ceux qui ne connaissent pas l'expression "de conserve", lire ou relire l'album de Tintin "Le secret de la licorne"

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

Discussions similaires

  1. [Lazarus] Interception des messages Windows dans un service
    Par TheFreeBerga dans le forum Lazarus
    Réponses: 2
    Dernier message: 31/08/2014, 12h08
  2. Interception des messages Windows
    Par gfarcy dans le forum C
    Réponses: 0
    Dernier message: 28/11/2011, 12h01
  3. Intercepter un Message Windows ? Créer un Composant Grille !
    Par TOTO32 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 21/07/2004, 13h41
  4. Réponses: 2
    Dernier message: 06/04/2004, 08h39
  5. Gestion des message windows dans les threads
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 06/10/2003, 17h25

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