初学mfc,对消息传递机制不是很懂。看上上面的
初学mfc,对消息传递机制不是很懂。。。看下下面的:
------解决方案--------------------
如果改了顺序不一样,那就怀疑
ID_TEST,ID_TEST001这两个的ID值可能是相同的.
否则,除非你点击了不同的命令,否则跟顺序真无关的.
------解决方案--------------------
ID不要重复 可以手动维护一下
------解决方案--------------------
你应该是手工修改了ID吧,按理说自动生成的ID是不会重复的。
- 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_MAP END_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_MAP END_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是不会重复的。