我在头文件中
已经加入了#define WM_MYMESSAGE (WM_USER+123);protected:
HICON m_hIcon; // Generated message map functions
//{{AFX_MSG(CDemoDLGDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnButton1();
//}}AFX_MSG
afx_msg LRESULT OnMyMessage(WPARAM wParam,LPARAM lParam);
DECLARE_MESSAGE_MAP()
在cpp文件中已经加入了BEGIN_MESSAGE_MAP(CDemoDLGDlg, CDialog)
//{{AFX_MSG_MAP(CDemoDLGDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)
END_MESSAGE_MAP()LRESULT CDemoDLGDlg::OnMyMessage(WPARAM wParam,LPARAM lParam){ AfxMessageBox("000");
return 0;
}在点击按钮的时候加入了
void CDemoDLGDlg::OnButton1() 
{
// TODO: Add your control notification handler code here
SendMessage(WM_MYMESSAGE,0,0);
}
但是为什么已生成
总是报F:\工作\Demo\VC++\DemoDLG\DemoDLGDlg.cpp(87) : error C2059: syntax error : ';'
F:\工作\Demo\VC++\DemoDLG\DemoDLGDlg.cpp(87) : error C2143: syntax error : missing ';' before ','
F:\工作\Demo\VC++\DemoDLG\DemoDLGDlg.cpp(87) : error C2143: syntax error : missing ';' before '}'
F:\工作\Demo\VC++\DemoDLG\DemoDLGDlg.cpp(87) : error C2143: syntax error : missing ';' before '}'
F:\工作\Demo\VC++\DemoDLG\DemoDLGDlg.cpp(88) : error C2143: syntax error : missing ';' before '{'
F:\工作\Demo\VC++\DemoDLG\DemoDLGDlg.cpp(88) : error C2447: missing function header (old-style formal list?)
F:\工作\Demo\VC++\DemoDLG\DemoDLGDlg.cpp(88) : error C2143: syntax error : missing ';' before '}'
F:\工作\Demo\VC++\DemoDLG\DemoDLGDlg.cpp(177) : error C2143: syntax error : missing ')' before ';'
F:\工作\Demo\VC++\DemoDLG\DemoDLGDlg.cpp(177) : error C2143: syntax error : missing ';' before ','
F:\工作\Demo\VC++\DemoDLG\DemoDLGDlg.cpp(177) : error C2059: syntax error : ')'总是说ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)这后面少;号啊 什么的
这是为什么 求解!!

解决方案 »

  1.   

    #define WM_MYMESSAGE (WM_USER+123);
    把分号去掉。
      

  2.   

    晕…
    为什么下面的报错提示根本就不对啊 
    直接点击下面的报错提示
    跳到ON_MESSAGE()那边去了
    我的个天啊!!!!!!!
      

  3.   

    因为宏只是做一个简单的替换,你的ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)实际上是ON_MESSAGE((WM_USER+123);,OnMyMessage),当然会在这行报错。