如何使用C ++将事件处理程序添加到新创build的窗口?
_hWnd = CreateWindow( NULL,NULL,NULL );
它是一个虚拟窗口,意图不用等待WM_DEVICECHANGE事件,而是使用RegisterDeviceNotification进行RegisterDeviceNotification 。 如何将事件处理程序附加到此窗口? 我正在使用Visual Studio 2008.谢谢。
如何添加目录中的文件时使用inotify-tools来发送邮件给我?
将事件侦听器添加到绘制的对象
如何检测表单何时被最大化?
在监视器连接/断开事件上运行脚本
使用C进行Windows注销捕获
你可以通过SetwindowLongPtr和GWL_WNDPROC标志来设置窗口过程。
SetwindowLongPtr(_hWnd,GWL_WNDPROC,myWndProc);
您需要使用RegisterClass将窗口过程与窗口类相关联,然后使用此类创建窗口。 它是处理所有消息的窗口过程 – 在Win32中没有“事件处理程序”机制。
除了别人所说的,当创建一个隐藏的窗口来接收消息时,可以考虑使用CreateWindowEx() ,而将其hWndParent参数设置为HWND_MESSAGE 。 有关更多信息,请参阅MSDN 。
至少通常,您首先调用RegisterClass ,它指定窗口类的窗口过程。 然后在调用CreateWindow时指定该类。
您可能不需要创建单独的窗口来处理此消息。
我提到这一点,因为大多数Windows应用程序已经创建了一个窗口,并且只需要将WM_DEVICECHANGE消息的处理添加到主窗口的窗口过程中。
如果您的应用程序作为Windows服务(守护程序)运行,您还可以在服务控制处理程序中接收设备更改通知。
如果您的应用程序是一个控制台模式的应用程序,您可以获取该窗口的句柄并对其进行 子类化 ,为WM_DEVICECHANGE消息添加处理。
玩的开心!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。