Click here to Skip to main content
15,888,113 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionIs memory leak possible when I dont delete the object Pin
manoharbalu25-Aug-11 19:12
manoharbalu25-Aug-11 19:12 
AnswerRe: Is memory leak possible when I dont delete the object Pin
Eugen Podsypalnikov25-Aug-11 19:32
Eugen Podsypalnikov25-Aug-11 19:32 
AnswerRe: Is memory leak possible when I dont delete the object Pin
Stefan_Lang25-Aug-11 22:38
Stefan_Lang25-Aug-11 22:38 
GeneralRe: Is memory leak possible when I dont delete the object Pin
manoharbalu26-Aug-11 0:41
manoharbalu26-Aug-11 0:41 
GeneralRe: Is memory leak possible when I dont delete the object Pin
Stefan_Lang26-Aug-11 2:05
Stefan_Lang26-Aug-11 2:05 
GeneralRe: Is memory leak possible when I dont delete the object Pin
manoharbalu26-Aug-11 2:33
manoharbalu26-Aug-11 2:33 
AnswerRe: Is memory leak possible when I dont delete the object Pin
richy_b28-Aug-11 10:27
richy_b28-Aug-11 10:27 
QuestionMFC's message map, no need of &? Pin
Dean Seo25-Aug-11 14:54
Dean Seo25-Aug-11 14:54 
It's syntax that we have to put '&' right before pointer to member function.
For example here.
C++
class Test;
typedef void (Test::*fpop)();
class Test
{
public:
	void Op1(){}
};

int main(){
	fpop pFunc;
	pFunc = &Test::Op1;   // we must need &

	return 0;
}


However, when I take a look at ON_COMMAND(or any other messages) in MFC, it seems a bit different from what I think is right.

VS6.0 is okay. It follows the right syntax as you see below.
You can clearly see & before memberFxn.
C++
#define ON_COMMAND(id, memberFxn) \
        { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSig_vv, (AFX_PMSG)&memberFxn },
                // ON_COMMAND(id, OnFoo) is the same as
                //   ON_CONTROL(0, id, OnFoo) or ON_BN_CLICKED(0, id, OnFoo)



But in VS2008, it goes a bit weird. There is no & before memberFxn.
C++
#define ON_COMMAND(id, memberFxn) \
        { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSigCmd_v, \
                static_cast<AFX_PMSG> (memberFxn) },
                // ON_COMMAND(id, OnBar) is the same as
                //   ON_CONTROL(0, id, OnBar) or ON_BN_CLICKED(0, id, OnBar)


Moreover, in spite of the fact that there is no & before memberFxn,
each line below works perfectly.

1. ON_COMMAND(ID_APP_ABOUT, CSingleApp::OnAppAbout) // &
2. ON_COMMAND(ID_APP_ABOUT, &CSingleApp::OnAppAbout) // no &

I tried to find why, and I was curious if it could be because of static_cast<> but it turned out that static_cast has nothing to do with it.

So I am wondering why in VS2008 I have 2 choices where I put & or I don't have to put &.
AnswerRe: MFC's message map, no need of &? Pin
Peter_in_278025-Aug-11 17:22
professionalPeter_in_278025-Aug-11 17:22 
GeneralRe: MFC's message map, no need of &? Pin
Dean Seo25-Aug-11 18:16
Dean Seo25-Aug-11 18:16 
GeneralRe: MFC's message map, no need of &? Pin
Peter_in_278025-Aug-11 22:53
professionalPeter_in_278025-Aug-11 22:53 
GeneralRe: MFC's message map, no need of &? Pin
Albert Holguin26-Aug-11 5:03
professionalAlbert Holguin26-Aug-11 5:03 
SuggestionRe: MFC's message map, no need of &? [modified] Pin
Member 782758330-Aug-11 21:20
Member 782758330-Aug-11 21:20 
GeneralRe: MFC's message map, no need of &? Pin
Albert Holguin31-Aug-11 8:16
professionalAlbert Holguin31-Aug-11 8:16 
QuestionGetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
transoft25-Aug-11 11:12
transoft25-Aug-11 11:12 
AnswerRe: GetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
Code-o-mat25-Aug-11 23:52
Code-o-mat25-Aug-11 23:52 
GeneralRe: GetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
transoft26-Aug-11 2:47
transoft26-Aug-11 2:47 
GeneralRe: GetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
transoft26-Aug-11 2:50
transoft26-Aug-11 2:50 
GeneralRe: GetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
Code-o-mat26-Aug-11 3:03
Code-o-mat26-Aug-11 3:03 
GeneralRe: GetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
transoft26-Aug-11 4:16
transoft26-Aug-11 4:16 
QuestionRe: GetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
MicroVirus26-Aug-11 6:00
MicroVirus26-Aug-11 6:00 
AnswerRe: GetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
transoft26-Aug-11 6:11
transoft26-Aug-11 6:11 
GeneralRe: GetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
jeron126-Aug-11 7:48
jeron126-Aug-11 7:48 
GeneralRe: GetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
transoft26-Aug-11 8:00
transoft26-Aug-11 8:00 
AnswerRe: GetCharABCWidthsFloat returns different values on XP, Vista and Windows 7 Pin
Charles Oppermann26-Aug-11 10:35
Charles Oppermann26-Aug-11 10:35 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.