はじめまして。
WIN98のVB6.0を使用しています。
Private Sub LEAD1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y
As Single)
If pDown = True Then
LEAD1.DstTop = LEAD1.DstTop + (Y - pDown_y) / 50
LEAD1.DstLeft = LEAD1.DstLeft + (X - pDown_x) / 50
LEAD1.DstClipTop = LEAD1.DstTop
LEAD1.DstClipLeft = LEAD1.DstLeft
End If
End Sub
こんな感じでイメージ上でのマウスムーブ=マウス移植値により画像の表示領域を変更
を設定したのですが、このままではイメージ上からカーソルが外れた時も(ドラッグ状態で)
カーソルの形がイメージを動かすもの(手のマーク)のままなんですね。
どうしたら元のマークに戻るようになるんでしょうか、どなたかアドバイスください。
こんにちはみにこさん、べーちゃんといいます。
肝心のカーソルを設定しているルーチンや、
どんなときにカーソルを変化させ、どんなときに戻すか
についてはどうなっているのですか。
べーちゃんさん、とっても早いお返事どうもありがとうございます。
説明不足ですみませんでした。
カーソルはマウスダウンイベントで、こんな風に変わるようになっています。
Private Sub LEAD1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y
As Single)
If pLoadImgName = " Then
Exit Sub
End If
LEAD1.MousePointer = 99
pDown_x = X
pDown_y = Y
pDown = True
End Sub
そして次のマウスアップイベントで、元に戻るようになっています。
Private Sub LEAD1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y
As Single)
LEAD1.MousePointer = 0
pDown = False
End Sub
なので、カーソルを元に戻すには、マウスアップするしかない状態なんです。
こんにちはみにこさん。
まず、このプログラムでは市販のコントロールを使われているのですね?
確認したいのですが
マウスの左ボタンをイメージの領域で押した時にカーソルは変わるのですね?
そのままマウスの左ボタンを押したままイメージ領域外にカーソルを
移動(ドラッグ)させてもカーソルは変わったままですよね。
その後マウスの左ボタンを離したらカーソルはデフォルトに戻りますよね。
以上の動作には問題ないですよね。
もし上記の通り動作しない場合、コントロールについて調べてみる必要が
あると考えられます。
おそらく最初の文面から行くとドラッグ中でもイメージ領域から外れると
マウスカーソルを戻したいといことですよね。
もしそうであれば
MouseMoveイベントのIf - End Ifの間に
If 0 <= Y And Y <= LEAD1.Height And 0 <= X And X <= LEAD1.Width Then
LEAD1.MousePointer = vbCustom
Else
LEAD1.MousePointer = vbDefault
End If
をいれてみたらどうですか?
確認はVB6標準のイメージコントロールで行っているため、市販の
コントロールだとプロパティや動作が異なる部分もあるかもしれません。
ありがとうございます!ちゃんと動くようになりました。
>マウスの左ボタンをイメージの領域で押した時にカーソルは変わるのですね?
>そのままマウスの左ボタンを押したままイメージ領域外にカーソルを
>移動(ドラッグ)させてもカーソルは変わったままですよね。
>その後マウスの左ボタンを離したらカーソルはデフォルトに戻りますよね。
ここまではちゃんと動いていたので、あとはべーちゃんさんのアドバイスを元に、
マウスポインタ部分だけ変えて(0とか99に)やってみたらうまくいきました!
本当にどうもありがとうございました!!