我需要在 Visual Basic 2005 Express 中创建一个快速的旋钮控件,通过用鼠标“抓住”它并向上/向下移动光标来增加/减少其值。因为旋钮本身不移动,所以我需要继续跟踪控件矩形之外的鼠标移动。

我用一个 LabelImageList 来实现这个(我有一个包含 127 个位图的列表,代表各个位置的旋钮)。

我应该对哪些事件做出反应?

有帮助吗?

解决方案

您需要该控件来处理三个事件:鼠标按下、鼠标移动和鼠标向上。在鼠标按下事件中,您需要捕获鼠标。这意味着鼠标消息被发送到具有捕获的控件。在鼠标移动事件中,如果捕获了输入,则根据鼠标移动的量更新显示的图像。在鼠标弹起事件中,如果捕获了输入,则释放捕获。

布尔值 jjnguy 建议是不必要的,因为控件的 Capture 属性是可读的,因此可以确定是否已设置捕获。

其他提示

您的问题是根据鼠标在 mouse_move 事件中报告的坐标确定必须显示哪个位图。您需要执行一些魔法来转换坐标并得出可用于选择正确图像的值。

听起来并不太复杂,只是在数学上进行了一些尝试和错误。Skizz 已经向您展示了如何捕捉事件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top