在对接手写板处理手写板的消息时遇到的问题记录如下:
MFC处理自定义消息的逻辑:
第一步:声明自定义消息
#define WM_MYMSG WM_USER + 200 //WM_USER为系统定义好的值为0x0400
第二步:在类声明中声明消息映射
DECLARE_MESSAGE_MAP()
第三步:在类声明中声明消息处理函数
例如:afx_msg LRESULT MyMsgHandler(WPARAM,LPARAM);
第四步:要实现消息映射
BEGIN_MESSAGE_MAP()
ON_MESSAGE(WM_MYMSG,OnMyMsgHandler)
END_MESSAGE_MAP()
第五步:实现消息处理函数
LRESULT CMainFrame::OnMyMsgHandler(WPARAM w,LPARAM l)
{
AfxMessageBox(“Hello,World!”);
return 0;
}
C#处理自定义消息的逻辑:
第一步:自定义消息
const int WM_MYMSG = 0x0400 + 200
第二步:重载消息处理函数
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
}
第三步:在消息处理函数中,处理自定义消息
protected override void WndProc(ref Message m)
{
if(m.msg == WM_MYMSG)
{
console.WriteLine(“catch mymsg!”);
}
base.WndProc(ref m);
}
心得: MFC处理自定义时,首先需要将消息和消息处理函数绑定,当自定义消息过来时。有MFC调用消息处理函数。
C#则需要自己在消息循环中取获取自定义消息再处理。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/51850.html