特定の領域でマウスカーソルを変更するには?

解決


じょう  2007-01-20 17:56:13  No: 64256  IP: 192.*.*.*

環境:Win2000 SP4,VC6

ダイアログにピクチャーコントロールを貼り付けて、そこに、任意の座標の四角形を描画し、その四角形の領域にマウスカーソルが来た場合に、マウスカーソルを変更したいのですが、どうすれば良いでしょうか?ご教授願います。
四角形の描画方法には色々あると思いますが、特に指定はありません。
よろしくお願いいたします。

編集 削除
超初心者  2007-01-20 18:57:40  No: 64257  IP: 192.*.*.*

WM_SETCURSOR、SetCursorについて調べてみるといい

その四角形の領域かどうかは自分で座標をチェックすることになるだろうな

編集 削除
じょう  2007-01-21 03:54:27  No: 64258  IP: 192.*.*.*

ご助言ありがとうございます。

四角形の座標をチェックするのに、ピクチャーコントロール(デバイスコンテキスト)にあるマウスカーソルの座標を取得したいのですが、何か方法はないでしょうか?
取得したいのは、ダイアログでのマウスカーソル座標ではなく、ピクチャーコントロールの左上をx=0,y=0としたマウスカーソルの座標です。
WM_MOUSEMOVE(OnMouseMove( UINT nFlags, CPoint point );)等のCPointでは、ダイアログ上のマウスカーソルの座標が設定されるようで使えませんでした。

よろしくお願いいたします。

編集 削除
超初心者  2007-01-21 10:04:49  No: 64259  IP: 192.*.*.*

ピクチャーコントロールをサブクラス化して
ピクチャーコントロールのWM_SETCURSORでSetCursorする

あるいは
ClientToScreenおよびScreenToClientをつかい座標を換える

あるいは
ウィンドウの座標を調べて自分で加減算して座標を換える

編集 削除
じょう  2007-01-22 02:05:42  No: 64260  IP: 192.*.*.*

サブクラス化は四角形の座標の持ち方が私には難しかったので、ClientToScreenを使うことにしました。
ありがとうございました。

編集 削除