gpt4 book ai didi

winforms - C# WM_VScroll & VScroll 控件

转载 作者:行者123 更新时间:2023-12-04 05:49:02 25 4
gpt4 key购买 nike

我正在尝试创建 VScroll 控件的子类并拦截 WM_VSCROLL消息做一些事情。在 msdn 和无数文章/论坛上,WM_VSCROLL应该是 0x115 ,即使在 windows 头文件中也是如此。然而等待0x115不会带来任何东西。我意识到它正在通过 0x2115相反,甚至 this article正在使用它作为 0x2115 .关于它为什么会出现的任何原因/解释 0x2115反而?是因为它是一个 WinForms 控件吗?

谢谢

最佳答案

是的,这在 Windows GUI 类库中是非常标准的,Winforms 也不异常(exception)。 native Windows 控件(在您的情况下为 ScrollBar)向其父控件发送通知。毕竟,他们的目的是让他们的 parent 对通知采取行动,而不是他们自己。或者换句话说,您希望父窗口滚动。

然而,这与控制类的概念不太兼容,您可以通过覆盖其消息处理和生成来修改其行为。或者就 .NET 中事件的想法而言,任何人都可以订阅 Scroll 事件,而不仅仅是父事件。

这带来了很多好处,但必须采取一些措施才能将 WM_VSCROLL 消息从父级返回到控件。这就是 Winforms 管道所负责的。它发回消息,但更改消息编号以表明它是反射消息,而不是原始消息。它添加了 0x2000。 Winforms 源代码中(假)WM_REFLECT 消息的值。

关于winforms - C# WM_VScroll & VScroll 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10322782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com