把手窗口';s滚动条';s鼠标移动(WinAPI)

把手窗口';s滚动条';s鼠标移动(WinAPI),winapi,scrollbar,Winapi,Scrollbar,我有一个有滚动条样式的窗口,所以它有自己的滚动条。我希望当鼠标悬停在滚动条上时会发生一些事情,但是处理窗口的鼠标移动并不能起作用。如何处理滚动条的mousemove事件 谢谢在Win32 API中,滚动条没有“mousemove事件”。从垂直滚动条中得到的唯一消息是WM\u VSCROLL 如果希望滚动条具有特殊行为,则必须对其进行子类化,并重写对的处理。正如MSDN()中所说: 但是,如果您希望更改 机器的标准外观或功能 滚动条,您可以选择子类 窗口上的滚动条或 创建一个独立控件 您可以通过搜

我有一个有滚动条样式的窗口,所以它有自己的滚动条。我希望当鼠标悬停在滚动条上时会发生一些事情,但是处理窗口的鼠标移动并不能起作用。如何处理滚动条的mousemove事件


谢谢

在Win32 API中,滚动条没有“mousemove事件”。从垂直滚动条中得到的唯一消息是
WM\u VSCROLL

如果希望滚动条具有特殊行为,则必须对其进行子类化,并重写对的处理。正如MSDN()中所说:

但是,如果您希望更改 机器的标准外观或功能 滚动条,您可以选择子类 窗口上的滚动条或 创建一个独立控件

您可以通过搜索“subclass scrollbar”找到实现这一点的代码示例

编辑

我想做的是利用边缘 使用滚动条创建我的子窗口 可调整大小,这可能吗

滚动条不是这样做的。相反,定义一个窗口,几个像素宽,就在滚动条的右边(和一样高)。将该窗口的光标设置为“调整大小”光标(以便用户知道如何单击并拖动):

当该窗口收到WM_LBUTTONDOWN消息时,它应该开始跟踪鼠标,在鼠标移动时调整控件的大小并重新绘制控件。当窗口获得WM_LBUTTONUP时,它应该停止跟踪,并将控件保留在新的大小

这将使您开始使用鼠标跟踪功能。它是用来画线的,但过程类似。

检查拦截是否有帮助

WM_NCMOUSEMOVE消息已发布 当光标移动时,移动到窗口 在 窗户。此消息已发布到 包含光标的窗口。如果 窗口捕获了鼠标,这是 消息未发布


我想做的是使用滚动条的边缘来调整我的子窗口的大小,这是可能的吗?基本上我希望它的行为就像有WS_SIZEBOX时一样,但只适用于底部和右侧,而不是顶部和左侧。。