2017-07-13 49 views

答えて

0

これは既に私が見ることができるインターネット上でカバーされています。例えば

http://forums.codeguru.com/showthread.php?235997-CPropertySheet-color

あなたがCWnd::OnEraseBkgnd()を使用することができ、ウィンドウの背景色を変更します。渡されたCDCオブジェクトを使用して、背景を任意の色に塗りつぶすことができます。

0

あなたがメッセージイベントOnEraseBkgndを実装する必要があなたのCPropertyPage

class CMyPage : public CPropertyPage 
{ 
public: 

    DECLARE_MESSAGE_MAP() 

    afx_msg BOOL OnEraseBkgnd(CDC* pDC);  
} 

あなたのメッセージループにアプリケーションフレームワークのmessagイベントを追加します。

BEGIN_MESSAGE_MAP(CMyPage, CPropertyPage) 
     ON_WM_ERASEBKGND() 
END_MESSAGE_MAP() 

が最後にmessagイベントMethodeのを実装します。メソッドの実装は GetSysColorCDC::FillSolidRectCDC::GetClipBoxを使用しています:

BOOL CMyPage::OnEraseBkgnd(CDC *pDC) 
{ 
    // get the background color 
    COLORREF bkCol = ::GetSysColor(COLOR_MENU); 

    // get the area you have to fill 
    CRect rect; 
    pDC->GetClipBox(&rect); 

    // fill the rectangular area with the color 
    pdC->FillSolidRect(&rect, bkCol); 
    } 
関連する問題