24小时热门版块排行榜    

查看: 1761  |  回复: 1

lhy317409772

银虫 (初入文坛)

[求助] 为SerialPort增加WM_COMM_RXCHAR消息响应出错,求解答。

求大侠指点:
我在为SerialPort增加WM_COMM_RXCHAR消息响应时是这样来的:
Step1:
CODE:
// Generated message map functions
//{{AFX_MSG(CSerialPortTestDlg)
afx_msg LONG OnComm(WPARAM ch, LPARAM port);  
//}}AFX_MSG

Step2:
CODE:
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
ON_MESSAGE(WM_COMM_RXCHAR, OnComm)   
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

Step3:
CODE:
LONG CSerialPortTestDlg::OnComm(WPARAM ch, LPARAM port)
{
m_strEditReceiveMsg += ch;
UpdateData(FALSE);
return 0;
}

报错:
CODE:
D:\VC6.0\Work Program\MSComm\SerialPortTest\SerialPortTestDlg.cpp(56) : error C2065: 'OnComm' : undeclared identifier
D:\VC6.0\Work Program\MSComm\SerialPortTest\SerialPortTestDlg.cpp(56) : error C2440: 'type cast' : cannot convert from 'int *' to 'long (__thiscall CWnd::*)(unsigned int,long)'
        There is no context in which this conversion is possible

PS:我已经尝试过把 LONG 修改为 LRESULT,问题没有解决,谢谢了。
回复此楼
获得知识的唯一办法,就是靠青春去换取。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lhy317409772

银虫 (初入文坛)

Okay,我搞明白了..我的第二步消息映射添加错了地方,加在了CAboutDlg,而我并没有在CAboutDlg的头文件中声明响应函数OnComm...所以提示 未定义标识符。
获得知识的唯一办法,就是靠青春去换取。
2楼2014-04-16 19:58:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lhy317409772 的主题更新
信息提示
请填处理意见