カーソルの変更

[戻る]
ぽえっちVX 2003/11/26(水) 21:35:50
はじめまして。よろしくお願いします。

クライアント領域をクリックしたときにカーソルを変更したいのですが、さっぱりで
す。現時点では、クリックしたときにカーソルが消えてしまうだけです。

    WM_LBUTTONDOWN:
            hCur = LoadImage(0,"ねこ.cur",IMAGE_CURSOR,0,0,LR_LOADFROMFILE);
            SetCursor((HCURSOR)hCur);
            break;

変更したいカーソルはリソースのものではなく、予め作成していた ねこ.curファイルで
す。LoadImage関数の引数を色々と変えてはみたのですが・・・。

ご指摘、ご教授お願いしまっす。

WinXP,VC++6.0,SDK(環境)

PATIO 2003/11/27(木) 10:40:46
LoadImageが成功しているかどうかのチェックがないようですけれど、
大丈夫ですか?
多分、hCurを調べれば分かると思いますけれど。

ファイルのパス名を相対で指定していますが、
相対パスの場合、カレントディレクトリがどこにあるかで状況が変わってしまいます。
特にVCの開発環境から実行する場合とエクスプローラーでファイルを直接実行する
場合ではカレントディレクトリが違うはずです。
相対パスならどこを基準にするのかをきちんと把握してプログラミングしないと
うまく行きません。

瀬戸っぷ [E-Mail] 2003/11/27(木) 10:45:42
Googleで、「マウス カーソル変更 SetCursor」で検索してみました。
最初にHitする
http://yokohama.cool.ne.jp/chokuto/urawaza/changecursor2.html
のページ(HSP関係のようですが)で、方法が書かれています。

なお、書籍として…
Win32API散歩道
きた あきら著 SOFTBANK BOOKS ISBN4-7973-0598-3 \1200
にカーソル変更について書かれています。(CHAPTER15 カーソル自由自在)
もちろん他のコトについても書かれていますが。

SunPac 2003/11/27(木) 12:08:33
ウィンドウクラクの登録時にデフォルトカーソルを指定していませんか?
WNDCLASSEX構造体のhCursorをNULLにしましょう。

ぽえっちVX 2003/11/29(土) 15:58:29
[[解決]]
遅くなってすみません。m(__)m
自宅用マシンのトラブルで・・・。


PATIOさん
>LoadImageが成功しているかどうかのチェックがないようですけれど、
>大丈夫ですか?
>多分、hCurを調べれば分かると思いますけれど。

ファイル名は絶対パスでOK。
      ~~~~~~~~

皆さんのアドバイスを基にして、

 hCur = LoadCursorFromFile(ファイル名=絶対パス);
 SetCursor(hCur);
 Sleep(1000);

で期待通りの動きをすることができました。

みなさんのアドバイスに感謝します!!

古いスレッドには追加発言できません。