Click here to Skip to main content
12,953,065 members (60,447 online)
Rate this:
Please Sign up or sign in to vote.
See more:

I have a project with one file that is a COM plugin for a hosting application.
In that code I can freely use AfxMessageBox(), or if I want a bit more control
I can also use MessageBox() like so:

MessageBox(NULL,"File Missing.","Error",MB_OK);

In another .cpp file in the same solution is a property page for my plugin that the host pops up from it's menu system I can again use AfxMessageBox() to my hearts content but MessageBox() throws up the compiler error:

'CWnd::MessageBoxA' : function does not take 4 arguments.

Intellisense in both file point to the define in winuser.h

I really would like to use MessageBox() in the property page so I can change the dialog title text.

Thanks for all your help in advance.

Posted 12-Jan-13 4:27am
Ron Anders14.2K
Rate this: bad
Please Sign up or sign in to vote.

Solution 1

The chances are that in one case you are getting CWnd::MessageBox[^] and in the other Win API ::MessageBox[^]
It's difficult to tell without your code, but try putting the :: specifier in there as see it it corrects the problem.
Ron Anders 12-Jan-13 11:04am
double comment
Rate this: bad
Please Sign up or sign in to vote.

Solution 2

In case 2 you are obviously calling it from within your CWnd derived class, so the correct call would be:
MessageBox("File Missing.","Error",MB_OK);

as described in the documentation[^].

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month
OriginalGriff 6,429
CHill60 3,490
Maciej Los 3,103
Jochen Arndt 1,975
ppolymorphe 1,920

Advertise | Privacy | Mobile
Web01 | 2.8.170525.1 | Last Updated 12 Jan 2013
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100