读书人

初学mfc对消息传递机制不是很懂。看

发布时间: 2012-08-29 08:40:14 作者: rapoo

初学mfc,对消息传递机制不是很懂。。。看下下面的:

C/C++ code
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)    //{{AFX_MSG_MAP(CMainFrame)    ON_WM_CREATE()    ON_COMMAND(ID_TEST,   OnTest)    ON_COMMAND(ID_TEST001,OnTest001)//这个和下面的那个要是调换顺序的话,执行的结构都不一样    ON_COMMAND(IDM_SHOW,  OnShow)            //}}AFX_MSG_MAPEND_MESSAGE_MAP()

C/C++ code
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)    //{{AFX_MSG_MAP(CMainFrame)    ON_WM_CREATE()    ON_COMMAND(ID_TEST,   OnTest)    ON_COMMAND(IDM_SHOW,  OnShow)//这个和下面的那个要是调换顺序的话,执行的结构都不一样    ON_COMMAND(ID_TEST001,OnTest001)            //}}AFX_MSG_MAPEND_MESSAGE_MAP()


C/C++ code
void CMainFrame::OnTest001() //如果ON_COMMAND(ID_TEST001,OnTest001)在上面,就执行这条函数{    MessageBox("Test001");}void CMainFrame::OnShow() //如果ON_COMMAND(ID_TEST001,OnTest001)在下面,就执行这条函数{    MessageBox("CMainFrame::OnShow()");    // TODO: Add your command handler code here    }


[解决办法]
如果改了顺序不一样,那就怀疑
ID_TEST,ID_TEST001这两个的ID值可能是相同的.

否则,除非你点击了不同的命令,否则跟顺序真无关的.

[解决办法]
ID不要重复 可以手动维护一下
[解决办法]
你应该是手工修改了ID吧,按理说自动生成的ID是不会重复的。

读书人网 >VC/MFC

热点推荐