剛開始學習MFC,在經過論壇文章使用CBitmapButton類的時候,按照以下作法(網上大神寫的):函數
/////////////////////////////////////////////////////////////////////////////////////////////學習
在資源編輯的時候選中按鈕的 Owner draw 便可,不須要選擇 Bitmap 屬性.
2、在程序中定義一個CBitmapButton成員變量。
不能使用ClassWizard爲按鈕映射一個CButton變量,而後改成CBitmapButton,
這麼作並不能將按鈕直接映射爲CBitmapButton類的對象,反而會出現初始化錯誤。
3-1、使用CBitmapButton::LoadBitmaps裝載各類狀態的圖片,
使用SubclassDlgItem關聯到想要的按鈕,
使用CBitmapButton::SizeToContent函數使按鈕適合圖片大小。
注意Loadbitmaps必定要在關聯到按鈕以前進行!
3-2、或者是使用CBitmapButton::AutoLoad函數關聯到想要的按鈕。須要注意:
A、以前不能使用CBitmapButton::LoadBitmaps裝載各類狀態的圖片,不然會出錯。
B、AutoLoad函數完成的關聯和改變按鈕大小的CBitmapButton::SizeToContent函數的功能。
C、CBitmapButton::AutoLoad使用的位圖是默認資源ID的,
即它會自動裝載相關資源位圖。
位圖的資源ID格式爲:
"按鈕Caption+U"、"按鈕Caption+D"、"按鈕Caption+F"、"按鈕Caption+X",
分別表明Up、Down、Focus、Disable狀態。
如資源編輯時,但願關聯的按鈕的Caption爲Test,
那麼其默認裝載的位圖資源的ID爲:"TestU"/"TestD"/"TestF"/"TestX",
注意分號""也是其ID的一部分。spa
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////orm
老是出現對象
因爲對MFC的不熟悉,研究了很久,終於找到問題所在,緣由是:圖片
void CMyDlg::DoDataExchange(CDataExchange*pDX)資源
{it
CDialog::DoDataExchange(pDX);io
DDX_Control(pDX, IDC_BUTTON1,m_mapButton);//這句話的意思是將IDC_BUTTON1與 m_mapButton綁定,從而致使出現這種錯誤,對於這個函數的做用就不說了;這句話去掉就Ok了!class
}
發現錯誤是一種樂趣,不是嗎?特地記下本身學習過程當中的Error,學習是一個不斷犯錯不斷改錯的過程,Indeed!