背景:
我创建了一个MFC对话窗口,自动生成了XXXDlg.cpp和XXXDlg.h,想通过串口通讯接受对方的消息后,判断是否启动自定义消息。参考了如下博客https://www.cnblogs.com/rainbow70626/p/8034910.html
步骤如下:
1.在XXXDlg.h自定义消息宏
#define WM_CUSTOMIZE WM_USER+1
2.在XXXDlg.h中增加一个回调函数声明,注意在class CXXXDlg : public CDialogEx{…}里的public下
afx_msg LRESULT Customize(WPARAM wParam, LPARAM lParam);
3.在XXXDlg.cpp文件的BEGIN_MESSAGE_MAP(CXXXDlg,CDialogEx)到END_MESSAGE_MAP 中增加一行
ON_MESSAGE(WM_CUSTOMIZE, Customize)
4.在XXXDlg.cpp文件中增加回调函数的实现,如:
LRESULT CXXXDlg::Customize(WPARAM wParam, LPARAM lParam)
{
........
}
5.在串口接受函数下触发自定义消息
例如,我这里就插入如下语句
if (str1 == "begin")
{
::PostMessage(GetSafeHwnd(), WM_CUSTOMIZE, 0, 0);
}