在进行软件应用的时候,有时候需要进行串口的直接插拔而不进行关闭/打开串口的操作,此时,不加任何判断就直接将串口拔掉,此时再接上串口,串口也不能再使用,只有按键关闭串口,再打开,才能重新进行发送接收和正常显示。这就需要进行动态检测的串口热插拔,当检测到设备拔出的时候,关闭串口,当检测到串口插入的时候,再将串口打开,此时就可以正常进行数据的通信和打印输出。
这里主要利用CWnd的ON_WM_DECICECHANGE消息来处理,这个消息需要手动添加,而且只有顶层窗口可以捕捉到,具体步骤:
1、 在消息映射BEGIN_MESSAGE_MAP(Ctbox_debug_viewDlg, CDialogEx)中添加:ON_WM_DEVICECHANGE()
2、 在.h文件中添加函数声明:
afx_msg BOOL OnDeviceChange(