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()
2.新增一個函數 --
這是Microsoft所提供的函數型態
DECLARE_MESSAGE_MAP()
public:
afx_msg
BOOL OnDeviceChange(UINT nEventType,DWORD_PTR dwData);
3.函数內容的实现
BOOL OnDeviceChange(UINT nEventType,DWORD_PTR
dwData)
{
switch(nEventType)
{
case DBT_DEVICEARRIVAL:
return TRUE;
}
}
4. 在MSDN上的說明
afx_msg BOOL OnDeviceChange(
UINT
nEventType,
DWORD_PTR dwData
);
nEventType
For devices that offer software-controllable features, such as ejection and locking, the operating system typically sends aDBT_DEVICEREMOVEPENDING message to let applications and device drivers end their use of the device gracefully.
If the operating system forcefully removes of a device, it may not send a DBT_DEVICEQUERYREMOVE message before doing so.
The nEvent parameter can be one of these values:
Note This member function is called by the framework to allow your application to handle a Windows message. The parameters passed to your function reflect the parameters received by the framework when the message was received. If you call the base-class implementation of this function, that implementation will use the parameters originally passed with the message and not the parameters you supply to the function.
WM_DEVICECHANGE使用方式,布布扣,bubuko.com
原文:http://www.cnblogs.com/poetblog/p/3608667.html