WM_DEVICECHANGE的使用方式有二種,一種是透過WindowProc()的方式,一種是直接在程式裡加上OnDeviceChange()的函數,底下就先介紹第二種方式。
1. 新增消息 -- 在Dialog的.cpp裡加上藍色部份:
BEGIN_MESSAGE_MAP(CDeviceMonitorDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_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;
}