WM_DEVICECHANGE 检测USB的热拔插事件

来源:互联网 发布:更新mac系统版本出错 编辑:程序博客网 时间:2024/06/06 23:53

WM_DEVICECHANGE的使用方式有二種,一種是透過WindowProc()的方式,一種是直接在程式裡加上OnDeviceChange()的函數,底下就先介紹第二種方式。

1. 新增消息 -- 在Dialog的.cpp裡加上藍色部份:

BEGIN_MESSAGE_MAP(CDeviceMonitorDlg, CDialog) ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAPON_WM_DEVICECHANGE()END_MESSAGE_MAP()

注意:不添加新增消息,就不能响应OnDeviceChange函数
2.新增一個函數 -- 這是Microsoft所提供的函數型態

DECLARE_MESSAGE_MAP() public:afx_msg BOOL OnDeviceChange(UINT nEventType,DWORD_PTR dwData);

3.函数內容的实现

下面是以USB插入响应为例

BOOL CCLMemTestDlg::OnDeviceChange( UINT nEventType, DWORD_PTR dwData ){         switch(nEventType)     {     case DBT_DEVICEARRIVAL:         UpdateUsbDeviceList();         break;     case DBT_DEVICEREMOVECOMPLETE:         UpdateUsbDeviceList();         UpdateWindow();         break;     }     return TRUE;}


0 0
原创粉丝点击