windows消息处理机制
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息内容包括: 对于WinForm和WPF应用,以检测U盘插拔为例,记录windows消息接收处理: public const int WM_DEVICECHANGE = 0x219; //U盘插入后,OS的底层会自动检测到,然后向应用程序发送“硬件设备状态改变“的消息 public const int DBT_DEVICEARRIVAL = 0x8000; //U盘插入 public const int DBT_DEVICEREMOVECOMPLETE = 0x8004; //U盘卸载 Winform: protected override void WndProc(ref Message m) { if (m.Msg == WM_DEVICECHANGE) { switch (m.WParam.ToInt32()) { case DBT_DEVICEARRIVAL://U盘插入 // break; case DBT_DEVICEREMOVECOMPLETE: //U盘卸载 // break; default: break; } } base.WndProc(ref m); } WPF窗体中未实现WndProc函数,需要HwndSource对象添加消息处理回调函数。 private void MainWindow_Loaded(object sender,RoutedEventArgs e) { HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource; if (hwndSource != null) { hwndSource.AddHook(new HwndSourceHook(WndProc)); } } private IntPtr WndProc(IntPtr hwnd,int msg,IntPtr wParam,IntPtr lParam,ref bool handled) { if (msg == WM_DEVICECHANGE) { switch (wParam.ToInt32()) { case DBT_DEVICEARRIVAL://U盘插入 // break; case DBT_DEVICEREMOVECOMPLETE: //U盘卸载 // break; default: break; } } return IntPtr.Zero; } 通过类似写法,使用WPF或WinForm处理其他消息。 消息机制参考:http://www.cppblog.com/suiaiguo/archive/2009/07/18/90412.html 消息大全参考:https://blog.csdn.net/nupt123456789/article/details/7370562 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows ping命令
- windows-server-2008 – 两台Windows 2008服务器
- 如何跨多个生产服务器维护一个文件(Windows和Lin
- windows-server-2008 – Windows Server 2008 R2
- windows – NetBIOS“免费”网络?
- windows-server-2012-r2 – WSUS和推出Win 10 17
- 在xampp Windows 7上安装时必须加载PHP扩展“cur
- group-policy – 2012R2 RDSH中的最佳实践部署打
- file-server – 什么是可以遍历深度NTFS路径的好
- windows – REG添加REG_MULTI_SZ多行注册表值