Visual Basic 2005 Express でクイック アンド ダーティ ノブ コントロールを作成する必要があります。その値は、マウスで「つかみ」、カーソルを上下に移動することで増減します。ノブ自体は動かないので、コントロールの四角形の外側でマウスの動きを追跡し続ける必要があります。
Label
これを実装するために とを使用しますImageList
(さまざまな位置にあるノブを表す 127 個のビットマップのリストがあります)。
どのイベントに反応する必要がありますか?
Visual Basic 2005 Express でクイック アンド ダーティ ノブ コントロールを作成する必要があります。その値は、マウスで「つかみ」、カーソルを上下に移動することで増減します。ノブ自体は動かないので、コントロールの四角形の外側でマウスの動きを追跡し続ける必要があります。
Label
これを実装するために とを使用しますImageList
(さまざまな位置にあるノブを表す 127 個のビットマップのリストがあります)。
どのイベントに反応する必要がありますか?
問題は、mouse_move イベントでマウスが報告する座標に基づいて、表示する必要があるビットマップを決定することです。座標を変換し、適切な画像を選択するために使用できる値を見つけるために、いくつかの魔法を実行する必要があります。
それほど複雑ではないように思えますが、数学の試行錯誤が少しあるだけです。Skizz は、イベントをキャプチャする方法を既に示しています。
Mouse Down、Mouse Move、Mouse Up の 3 つのイベントを処理するコントロールが必要です。Mouse Down イベントでは、マウスをキャプチャする必要があります。これは、キャプチャを持つコントロールにマウス メッセージが送信されることを意味します。マウス移動イベントでは、入力がキャプチャされた場合、マウスの移動量に応じて表示画像を更新します。マウス アップ イベントで、入力がキャプチャされた場合はキャプチャを解放します。
コントロールのCaptureプロパティは読み取り可能であるため、ブール値のjjnguyは不要であるため、キャプチャが設定されているかどうかを判断できます。