Visual Studio C++: как добавить новое сообщение WM_DEVICECHANGE к MESSAGEMAP приложения |
|
Написал microsin
|
11.06.2009 |
Процесс по шагам (на примере dalog-based приложения MFC).
1. Открываем cpp-файл, относящийся к классу Вашего диалога, и ищем там карту сообщений основного окна диалога. Будет что-то наподобие:
BEGIN_MESSAGE_MAP(CUsbHidDemoCodeDlg, CDialog)
//{{AFX_MSG_MAP(CUsbHidDemoCodeDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_WM_TIMER()
ON_WM_CLOSE()
END_MESSAGE_MAP()
Добавляем перед строкой END_MESSAGE_MAP наше сообщение:
...
ON_WM_DEVICECHANGE()
END_MESSAGE_MAP()
2. Добавляем protected функцию наподобие BOOL CUsbHidDemoCodeDlg::OnDeviceChange (UINT nEventType, DWORD dwData), которая будет привязана к нашему новому сообщению. Это можно сделать как с помощью визарда (выбираем класс, Add -> Add Function...), так и вручную. Как это сделать вручную:
- открываем h-файл, относящийся к нашему классу
- ищем декларацию класса class CUsbHidDemoCodeDlg : public CDialog
- ищем в нем раздел protected:
- добавляем в раздел protected: сразу после DECLARE_MESSAGE_MAP() объявление нашей функции:
...
DECLARE_MESSAGE_MAP()
BOOL OnDeviceChange(UINT nEventType, DWORD dwData);
...
- в cpp-файл класса CUsbHidDemoCodeDlg добавляем код тела функции OnDeviceChange:
BOOL CifrechostDlg::OnDeviceChange(UINT nEventType, DWORD dwData)
{
...
}
|