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 :

[MFC] redéfinition de BEGIN_MESSAGE_MAP


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [RESOLU][MFC] redéfinition de BEGIN_MESSAGE_MAP
    Bonjour,

    J'en avais déjà ennuyé certain avec mon projet Visual migré sous Borland, et j'ai encore des problèmes

    Mon principal problème est que Borland redéfinit l'une des macros les plus utilisées en MFC, à savoir : BEGIN_MESSAGE_MAP. Avouez que pour un produit 100% compatible MFC c'est pas très propre (mais je sais j'ai tord de vouloir utilise les MFC sous Builder Mais bon c'est pas moi qui décide...)

    L'aide de Borland spécifie en toute lettres :

    Citation Envoyé par L'aide C++ Builder
    Avertissement : BEGIN_MESSAGE_MAP est en conflit avec la macro MFC de même nom définie dans afxwin.h. Ne déclarez pas une carte des messages en utilisant cette macro si vous utilisez MFC (Microsoft Foundation Classes). Vous devez dans ce cas, ajouter une carte de répartition des messages à vos objets en redéfinissant explicitement la méthode Dispatch.
    Chose que je ne sais pas faire...

    Un ti coup de main siouplé ?
    Merci

  2. #2
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    Deux solutions à mon sens :
    Soit tu édites le fichier afxwin.h pour changer le nom des macros
    Soit tu implémente la méthode Dispatch, qui doit ressembler à quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    virtual void __fastcall TMyListBox::Dispatch(void *Message_)
    {
      switch (((PMessage)Message)->Msg)
      {
        case WM_VSCROLL:
        {
          HandleVScroll(*((TMessage *)Message));
          break;
        }
        default:
        {
          TCustomListBox::Dispatch(Message);
          break;
        }
      }
    }
    Cordialement,

    Arnaud

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci Greybird, assez fastidieux mais fonctionnel, ça marche

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. MDI sans MFC, possible ?
    Par delire8 dans le forum MFC
    Réponses: 4
    Dernier message: 17/06/2002, 07h38
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58
  4. Réponses: 2
    Dernier message: 10/06/2002, 11h03
  5. [MFC] ADO connection
    Par philippe V dans le forum MFC
    Réponses: 3
    Dernier message: 10/06/2002, 07h36

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