我有一个基于Windows对话框的项目,该项目由VS 2013自动生成。现在,我想添加代码以检测USB设备插入。我阅读了代码示例refer 1。这是一个窗口过程可以处理的消息。我还知道我必须将此WinProc关联到WNDCLASS对象并调用RegisterClass,如示例代码refer 2。
但是,我由VS 2013生成的代码似乎并非如此。例如,我找不到像 refer 2 这样的WinMain。它从全局CWinApp :: MyApp对象开始,并在MyApp :: InitInstance()中创建并打开我的主对话框窗口。我在对话框实现中实现细节。
我不知道如何将窗口过程与我的主对话框关联。否则,当USB在 refer 1 中插入Main_OnDeviceChange(HWND hwnd,WPARAM wParam,LPARAM lParam)时,在主对话框中怎么办?
答案 0 :(得分:0)
我在主对话框类中找到了两个步骤的解决方案。
在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间添加 ON_WM_DEVICECHANGE()
添加afx_msg BOOL OnDeviceChange(UINT nEventType,DWORD dwData);并实施它。
OnDeviceChange是默认名称。如果更改名称,它将无法正常工作。
答案 1 :(得分:-1)
我无法访问这些示例的链接,但是从您的问题中我了解到,当您的应用程序是基于MFC对话框的应用程序时,这些示例是使用Windows APIS编写的。
我认为您只需要在Dialog Class中重写WindowProc方法
LRESULT WindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return CWnd::WindowProc(uMsg, wParam, lParam);
}