1. 程式人生 > >MFC為對話方塊新增背景圖片(非picture control控制元件)

MFC為對話方塊新增背景圖片(非picture control控制元件)

本文在這裡希望把這個東西的設計說的詳細一些。

在建立一個MFC的對話方塊專案後,可以在資源檢視中新增點陣圖,如不理解可以在百度中搜索mfc新增點陣圖,相信應該很多,這裡就不解釋了。

假設我們載入的點陣圖ID為IDB_BITMAP1

在我們對話方塊的類中的標頭檔案新增如下變數:(如果是主對話方塊,應該就是C**Dlg.h的一個檔案,如果是第二級或第3級的子對話方塊,需要右鍵新增一個新的類(如CBDlg繼承自CDialog類,然後在在類的標頭檔案中新增變數)CBrush m_brBk;//public中定義在相應的.CPP原始檔中:在初始化函式OnInitDialog()中加入: (如果是後來建立的子對話方塊沒有初始化對話方塊可以在類嚮導中找到虛擬函式OnlnitDialog新增進程式碼,如果是vs2005或者2008沒有類嚮導的IDE可以百度一下,很簡單我記得是開啟對話方塊類的.h標頭檔案,如上文建立的C**Dlg.h檔案。右鍵檢視屬性,在最上面一欄中應該有田間虛擬函式的按鈕) (

或者在建構函式)BOOL CTestDlg::OnInitDialog(){CDialog::OnInitDialog();    CBitmap bmp;    bmp.LoadBitmap(IDB_BITMAP);    m_brBk.CreatePatternBrush(&bmp);    bmp.DeleteObject();    return TRUE; // return TRUE unless you set the focus to a control}再開啟類嚮導,找到WM_CTLCOLOR訊息,過載得對應函式OnCtlColor(),新增如下:HBRUSH CTestDlg::OnCtlColor(
CDC* pDC, CWnd* pWnd, UINT nCtlColor){    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);    if (pWnd == this)    {    return m_brBk;    }    return hbr;}

至此,為對話方塊新增背景圖片就介紹完了。(wince, pc,vs2005,2008,2010測試均可用)