MFCでマウスカーソルと背景を変更したい

[戻る]
PARMA 2004/07/22(木) 23:44:13
マウスカーソルを変更したり、背景にビットマップを表示したいのです。 
APIで最初から全部プログラムを書いた時は簡単に出来ました。 
WNDCLASSEXを宣言してそのクラスのhCursorやhbrBacgroundに 
ロードすればよいわけです。 
それがMFCとなると、どこで何をしていいのかさっぱりわかりません。 
どなたか、お願いします。

とざ 2004/07/23(金) 03:51:55
> マウスカーソルを変更したり、背景にビットマップを表示したいのです。 

CWnd派生クラスなら、OnSetCursor と OnEraseBkGnd Or OnPaintでいけませんか?
#私はVC6ですが、いけてます。

dairygoods 2004/07/23(金) 10:12:10
自分でウィンドウクラスを作る場合は、
AfxRegisterWndClass()の引数に指定します。

MFCが勝手に作ったウィンドウの属性を変える場合は、
SetClassLong()で変更します。

ゆう 2004/07/23(金) 10:22:48
初期値で設定したい場合は、PreCreateWindowに記述します。
SDI ドキュメントなしのスケルトンより抜粋

BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs) 
{
    if (!CWnd::PreCreateWindow(cs))
        return FALSE;

    cs.dwExStyle |= WS_EX_CLIENTEDGE;
    cs.style &= ~WS_BORDER;
    cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, 
        ::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_WINDOW+1), NULL);

    return TRUE;
}

PARMA 2004/07/23(金) 12:45:32
[[解決]]
SetClassLongでできました。
ありがとうございました。

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