Ma MessageBox pose un problème de compilation dans une nouvelle classe [Résolu]

Signaler
Messages postés
192
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
19 octobre 2020
-
Messages postés
192
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
19 octobre 2020
-
Bonjour à tous !

Je ne comprend pas, je viens de créer une MFC , les MessageBox fonctionne dans mon programme normalement.
Je viens de rajouter des MessageBox dans une de mes classe, et la, erreur de compilation pour chaque MessageBox :

'MessageBoxA' : function does not take 3 parameters

Je viens de chercher assez longtemps sur google, mais je ne trouve pas de solution, meme les afxmessageBox ne semblent pas fonctionner !!

Merci à ceux qui pourront m'aider , bonne journée !!

10 réponses

Messages postés
114
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2012
1
en effet MessageBox ne prend pas 3 paramètres


dans l'aide Win32 :

int MessageBox(


    HWND  hWnd,    // handle of owner window

    LPCTSTR  lpText,    // address of text in message box

    LPCTSTR  lpCaption,    // address of title of message box 

    UINT  uType     // style of message box

   );

bonne prog


6co
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
La fonction MessageBox prend 4 arguments.
C'est juste qu'une méthode MessageBox est définie dans CWnd, et celle la ne prend que 3 paramètres.
La classe dans laquelle tu a mis tes MessageBox n'hérite pas de CWnd, tu ne peux dont pas utiliser la méthode à trois paramètres.

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Nixeus, pourquoi faire hériter une classe d'une autre juste pour un masquage de param ?
MessageBox a 4 params et il n'y a rien à y faire, quand tu n'en mets que 3 c'est MFC qui met le manquant pour toi mais il y sera par force.

ciao...
BruNews, MVP VC++
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
Quant tu crée une nouvelle classe, n'oublis pas de rajouter en haut du .CPP :
#include "stdafx.h"
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
AfxMessageBox n'hérite pas de CWnd, c'est une fonction globale.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
J'ai pas parlé de AfxMessageBox je crois. Son problème est sur MessageBox et pas AfxMessageBox

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
192
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
19 octobre 2020

Merci pour toutes vos réponses rapides !

Ce que je ne comprend pas,c'est que j'utilise MessageBox, comme tel:

MessageBox("xxxxx","yyyy",MB_OK);

et ca fonctionne !

Mais la, dans ma classe créer, en fesant pareil j'ai cette fameuse erreure !!

Note: STdafx.h est bien intégré dans le cpp de ma classe !

Merci a tous si vous avez une autre idée !
Messages postés
192
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
19 octobre 2020

Et donc, comment utiliser la méthode a 3 parametre, je doit faire hériter ma classe de cwnd ?
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
C'était pas pour te contredire vecchio56, simplement pour dire qu'il pouvait utiliser Afx...
Messages postés
192
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
19 octobre 2020

D'accord les amis !

J'ai donc rajouté '0' en premier parametres, et MessageBox refonctionne normalement !!

Merci à tous pour l'aide aportée !