カーソルアイコンの変更

[戻る]
カレイライス 2005/03/18(金) 17:16:20
 お世話になります。
今、メッセージを受信するとモーダレスダイアログが表示するように
処理をしています。そこで モーダレスダイアログ内では
別のカーソルに変更したいのですが、過去ログなどを参照してプログラミング
した結果うまくいきません。なお モーダレスダイアログ内では画像を
表示しています。もしかしてこれが関係しているのでしょうか??

どなたかご存知の方がおられましたらご教授お願いします。
VC++6.0 MFCで作成しています。ちなみにモーダレスダイアログクラスで
下記のように記述しました。

BOOL Cxxxxxxxx::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
    HCURSOR    hcursor;
    hcursor = AfxGetApp()->LoadCursor(IDC_CROSS);
    
    SetCursor( hcursor );

    return CDialog::OnSetCursor(pWnd, nHitTest, message);
}

dairygoods 2005/03/18(金) 17:35:49
>    return CDialog::OnSetCursor(pWnd, nHitTest, message);

ここで、元のカーソルに戻されてしまっています。

カレイライス 2005/03/18(金) 17:43:10
dairygoodsさん。ありがとうございます。
一つ 質問があるのですが

return CDialog::OnSetCursor(pWnd, nHitTest, message);

というのは ClassWizardでOnSetCursor()を挿入したときに
自動的に作られるものですよね??これを変更してやらないと
いけないのですか??それともOnSetCursor以外の方法で
カーソルを変更させてやらないといけないのでしょうか??

dairygoods 2005/03/18(金) 19:21:44
変更してください。

return TRUE;

メッセージハンドラを追加したとき、
元の機能も残すのか、元の機能は不要ですべて置き換えるのかは、
プログラマにしか判断できません。

カレイライス 2005/03/22(火) 19:15:09
dairygoodsさん。返事の方が遅れましてすいません。
おかげさまで カーソル変更を行うことができました。
しかし、失礼ながらもう一つ質問があります。
ダイアログにスクロールバーがついているのですが、
スクロールバー上でもカーソルが変更されてしまい、
スクロールやダイアログのサイズ伸縮ができない状況であります。
この問題はどのように対処すればよろしいのでしょうか??
ご迷惑おかけしますが、よろしくお願いします。

カレイライス 2005/03/22(火) 23:23:47
[[解決]]
dairygoodsさん。すいません。自己解決しました。

nHitTestをクライアント領域のみにすれば処理できました。
いろいろご迷惑おかけしました。また何かありましたら
よろしくお願いします。

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