イメージ表示範囲から外れた時にカーソルが元に戻るようにするには。 – プログラミング – Home

イメージ表示範囲から外れた時にカーソル...
 
通知
すべてクリア

[解決済] イメージ表示範囲から外れた時にカーソルが元に戻るようにするには。


みにこ
 みにこ
(@みにこ)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

はじめまして。
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

こんな感じでイメージ上でのマウスムーブ=マウス移植値により画像の表示領域を変更
を設定したのですが、このままではイメージ上からカーソルが外れた時も(ドラッグ状態で)
カーソルの形がイメージを動かすもの(手のマーク)のままなんですね。
どうしたら元のマークに戻るようになるんでしょうか、どなたかアドバイスください。


引用未解決
トピックタグ
べーちゃん
 べーちゃん
(@べーちゃん)
ゲスト
結合: 22年前
投稿: 49
 

こんにちはみにこさん、べーちゃんといいます。

肝心のカーソルを設定しているルーチンや、
どんなときにカーソルを変化させ、どんなときに戻すか
についてはどうなっているのですか。


返信引用
みにこ
 みにこ
(@みにこ)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

べーちゃんさん、とっても早いお返事どうもありがとうございます。
説明不足ですみませんでした。
カーソルはマウスダウンイベントで、こんな風に変わるようになっています。

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

なので、カーソルを元に戻すには、マウスアップするしかない状態なんです。


返信引用
べーちゃん
 べーちゃん
(@べーちゃん)
ゲスト
結合: 22年前
投稿: 49
 

こんにちはみにこさん。

まず、このプログラムでは市販のコントロールを使われているのですね?
確認したいのですが
マウスの左ボタンをイメージの領域で押した時にカーソルは変わるのですね?
そのままマウスの左ボタンを押したままイメージ領域外にカーソルを
移動(ドラッグ)させてもカーソルは変わったままですよね。
その後マウスの左ボタンを離したらカーソルはデフォルトに戻りますよね。

以上の動作には問題ないですよね。
もし上記の通り動作しない場合、コントロールについて調べてみる必要が
あると考えられます。

おそらく最初の文面から行くとドラッグ中でもイメージ領域から外れると
マウスカーソルを戻したいといことですよね。
もしそうであれば

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標準のイメージコントロールで行っているため、市販の
コントロールだとプロパティや動作が異なる部分もあるかもしれません。


返信引用
みにこ
 みにこ
(@みにこ)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

ありがとうございます!ちゃんと動くようになりました。

>マウスの左ボタンをイメージの領域で押した時にカーソルは変わるのですね?
>そのままマウスの左ボタンを押したままイメージ領域外にカーソルを
>移動(ドラッグ)させてもカーソルは変わったままですよね。
>その後マウスの左ボタンを離したらカーソルはデフォルトに戻りますよね。

ここまではちゃんと動いていたので、あとはべーちゃんさんのアドバイスを元に、
マウスポインタ部分だけ変えて(0とか99に)やってみたらうまくいきました!

本当にどうもありがとうございました!!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました