WndProc 是 WinForms 如何通过更易于使用和理解的 .NET 层提供 Win32 窗口消息包装器的方式。
通常它按以下方式工作。以 WM_LBUTTONDOWN Windows 消息为例。Windows.Forms.Control.WndProc 将拦截此消息并从消息的 WPARAM 和 LPARAM 中提取相关信息。然后,它调用受保护的虚拟方法 OnMouseDown,并将相关信息很好地封装到 MouseEventArgs 中。然后,该实现将在其自身处理结束时触发 MouseDown 事件。
因此,处理一组OnXXXX方法/XXXX事件比直接拦截Windows消息要容易得多。
但是,如果您感兴趣的 Windows 消息不是由 WinForms 处理的怎么办?在这种情况下,您可以重写 WndProc 并直接自行处理。另一个用途是拦截消息,然后在控件本身有机会处理它之前将其丢弃。或者,您可以创建自定义消息以在应用程序内的控件之间发送。当您想要查看控件收到的每条消息时,这对于调试也很有用,您只需在一处添加日志记录即可。
| 归档时间: |
|
| 查看次数: |
618 次 |
| 最近记录: |