我需要在Visual Basic 2005 Express中创建一个quick-n-dirty旋钮控件,通过鼠标“上下”并向上/向下移动光标来增加/减少其值。由于旋钮本身不移动,因此我需要跟踪控件矩形外的鼠标移动。如何在Visual Basic中实现鼠标拖动?
我使用Label
与ImageList
来实现(我有一个127位图表的列表,代表各个位置的旋钮)。
我应该对哪些事件做出反应?
我需要在Visual Basic 2005 Express中创建一个quick-n-dirty旋钮控件,通过鼠标“上下”并向上/向下移动光标来增加/减少其值。由于旋钮本身不移动,因此我需要跟踪控件矩形外的鼠标移动。如何在Visual Basic中实现鼠标拖动?
我使用Label
与ImageList
来实现(我有一个127位图表的列表,代表各个位置的旋钮)。
我应该对哪些事件做出反应?
您需要控制来处理三个事件:鼠标向下,鼠标移动和鼠标向上。在Mouse Down事件中,您需要捕获鼠标。这意味着鼠标消息被发送到具有捕获的控件。在鼠标移动事件中,如果捕获输入,则根据鼠标移动量更新显示的图像。在鼠标向上事件中,如果输入被捕获,释放捕获。
由于控件的Capture属性是可读的,因此可以确定捕获是否已设置,因此jjnguy建议的布尔值是不必要的。
您的问题将根据鼠标在mouse_move事件中报告的坐标来确定您必须显示哪个位图。您需要执行一些魔术来转换坐标,并拿出一个值,您可以使用它来选择正确的图像。
这听起来不太复杂,只是一点点的数学试验和错误。 Skizz已经告诉你如何捕捉事件。