串口热插拔的实现
来源:互联网 发布:sql语句 数据类型 编辑:程序博客网 时间:2024/06/10 13:15
根据网上资料实现的串口热插拔,记录下来
首先手动添加ON_WM_DEVICECHANGE()到
BEGIN_MESSAGE_MAP(CxxxxxDlg, CDialogEx)
ON_WM_SYSCOMMAND()
END_MESSAGE_MAP()
注意千万不要添加到
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
ON_WM_TIMER()
END_MESSAGE_MAP()
在头文件里面添加消息响应函数
afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD_PTR dwData);
定义消息响应函数
BOOL CxxxxxDlg::OnDeviceChange(UINT nEventType, DWORD_PTR dwData){//DEV_BROADCAST_DEVICEINTERFACE* dbd = (DEV_BROADCAST_DEVICEINTERFACE*) dwData;switch (nEventType){ case DBT_DEVICEARRIVAL:{CUIntArray portse, portsu;EnumerateSerialPorts(ports, portse, portsu);unsigned short uicounter;unsigned short uisetcom;CString str;int inseldex = m_ComList.GetCurSel();m_ComList.GetLBText(inseldex, m_strPort);//获取可用串口个数 uicounter = ports.GetSize();m_ComList.ResetContent();//如果个数大于0 if (uicounter > 0){//初始化串口列表框 for (int i = 0; i < uicounter; i++){uisetcom = ports.ElementAt(i);str.Format(_T("COM%d "), uisetcom);m_ComList.AddString(str);}m_ComList.SetCurSel(0);}break;}case DBT_DEVICEREMOVECOMPLETE:{CUIntArray portse, portsu;EnumerateSerialPorts(ports, portse, portsu);unsigned short uicounter;unsigned short uisetcom;CString str;int inseldex = m_ComList.GetCurSel();m_ComList.GetLBText(inseldex, m_strPort);//获取可用串口个数 uicounter = ports.GetSize();m_ComList.ResetContent();//如果个数大于0 if (uicounter > 0){m_cstrComList.RemoveAll();//初始化串口列表框 for (int i = 0; i < uicounter; i++){uisetcom = ports.ElementAt(i);str.Format(_T("COM%d "), uisetcom);m_cstrComList.Add(str);m_ComList.AddString(str);}for (int i = 0; i < m_cstrComList.GetSize(); i++){str += m_cstrComList.GetAt(i);}if (str.Find(m_strPort)){m_strPort += "已被拔出";MessageBox(m_strPort);m_ComList.SetCurSel(0);break;}}else{m_ComList.SetCurSel(0);AfxMessageBox(_T("串口已被拔出"));break;}m_ComList.SetCurSel(0);break;}return TRUE;}return FALSE;}
阅读全文
0 0
- 串口热插拔的实现
- MFC串口通信串口指示灯的实现
- java串口编程的实现
- 串口调试程序的实现
- WinCE串口蓝牙的实现
- WinCE串口蓝牙的实现 .
- WinCE串口蓝牙的实现
- MFC实现自己的串口
- OPENWRT串口通信的实现
- Android 实现串口的移植
- MATLAB 串口通信的实现。。
- mfc-串口功能的实现
- 串口异步收发的实现
- OPENWRT串口通信的实现
- 单片机串口通信协议的实现
- VC++ 动态检测串口的热插拔(一)通过遍历实现
- VC++ 动态检测串口的热插拔(二)通过注册表实现
- VC++ 动态检测串口的热插拔(一)通过注册表实现
- 验证码
- 整型规划的凸松弛(Convex Relaxation in Integer Programming)
- HYSBZ
- About android mk parameters
- 进程与线程
- 串口热插拔的实现
- 对动态网页进行逆向工程
- 使用MySQL帮助
- 机器学习的分类
- 互联网创业网站决定成败
- SQL Server 触发器
- 网络编程常用函数
- cocos ScrollView(滚动容器)加载大量item导致的卡顿问题解决方案
- ubuntu alt tab 无法切换应用程序