2008-09-01 33 views
0

我需要在Visual Basic 2005 Express中创建一个quick-n-dirty旋钮控件,通过鼠标“上下”并向上/向下移动光标来增加/减少其值。由于旋钮本身不移动,因此我需要跟踪控件矩形外的鼠标移动。如何在Visual Basic中实现鼠标拖动?

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

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

回答

0

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

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

0

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

这听起来不太复杂,只是一点点的数学试验和错误。 Skizz已经告诉你如何捕捉事件。