微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用C ++将事件处理程序添加到新创build的窗口

如何使用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] 举报,一经查实,本站将立刻删除。

相关推荐