Visual Studio C++: как добавить новое сообщение WM_DEVICECHANGE к MESSAGEMAP приложения Печать
Добавил(а) microsin   

Процесс по шагам (на примере dialog-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)
{
    ...
}