文書番号: 402000
最終更新日: 2003/11/11
//mdicli.h class CMDIClient : public CWnd // MDI Client 用クラス // 通常クラスウィザードの「クラスの追加」で generic CWnd を使用して作成する // ことができる { ... protected: virtual WNDPROC* GetSuperWndProcAddr(); afx_msg BOOL OnEraseBkgnd(CDC* pDC); ... } // mdicli.cpp //////////////////////////////////////////////////////////////////////////// // CMDIClient メッセージ ハンドラ BOOL CMDIClient::OnEraseBkgnd(CDC* pDC) { CBrush newBrush; newBrush.CreateSolidBrush(RGB(128,128,128)); // 変更する背景色のブラシを作成 HBRUSH hOldBrush = (HBRUSH)SetClassWord(GetSafeHwnd(), GCW_HBRBACKGROUND,(WORD)(HBRUSH)newBrush.m_hObject); // 現在の背景色のブラシを変更 BOOL ret = CWnd::OnEraseBkgnd(pDC); SetClassWord(GetSafeHwnd(),GCW_HBRBACKGROUND,(WORD)hOldBrush); // 以前の背景色のブラシに戻す newBrush.DeleteObject(); return ret; } // デフォルトのウィンドウプロシジャーは NULL を返す WNDPROC* CMDIClient::GetSuperWndProcAddr() { static WNDPROC NEAR pfnSuper = NULL; return &pfnSuper; } // mainfrm.h #include "mdicli.h" // MDI client procedure のヘッダ class CMainFrame : public CMDIFrameWnd { ... protected: CMDIClient m_NewMDIClient; // MDI client のオブジェクト ... }; // mainfrm.cpp int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if(!m_NewMDIClient.SubclassWindow(m_hWndMDIClient)){ // MDI クライアントのサブクラスを作成 // m_hWndMDIClient は MDI Client のウィンドウハンドルを示す // CMDIFrameWnd class のメンバ。 TRACE("SubclassWindow failed.\n"); } return 0; }
Keywords: KBHOWTO VC10 VC15 KB402000
Technology: kbAudDeveloper kbVCsearch