CBitmapDialog 的使用
在所有步驟之前,先添加按鈕各個(gè)狀態(tài)所需的位圖資源。
1 在對(duì)話(huà)框應(yīng)用程序中添加Button1(ID為IDC_BUTTON1)。在屬性的Style標(biāo)簽下選擇Owner draw即可,不需要選擇Bitmap屬性!
2 在程序中定義一個(gè)CBitmapButton成員變量bmButton。不能使用ClassWizard為按鈕映射一個(gè)CButton變量,然后改為CBitmapButton,這么做并不能將按鈕直接映射為CBitmapButton類(lèi)的對(duì)象,反而會(huì)出現(xiàn)初始化錯(cuò)誤。
3 使用CBitmapButton::LoadBitmaps裝載各種狀態(tài)的圖片,使用SubclassDlgItem關(guān)聯(lián)到想要的按鈕,使用CBitmapButton::SizeToContent函數(shù)使按鈕適合圖片大小。注意Loadbitmaps一定要在關(guān)聯(lián)到按鈕之前進(jìn)行!
在OnInitDialog()中添加的代碼如下所示:
BOOL CCBitmapDlgDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//.........................
// TODO: Add extra initialization here
if(bmButton.LoadBitmaps(IDB_BITMAP_QI,IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP2)==0)
MessageBox("裝載位圖出錯(cuò)!");
bmButton.SubclassDlgItem(IDC_BUTTON1,AfxGetMainWnd());
bmButton.SizeToContent();
return TRUE; // return TRUE unless you set the focus to a control
}
//對(duì)LoadBitmaps( ) 的一點(diǎn)說(shuō)明:
第一個(gè)參數(shù)為按鈕沒(méi)有按下時(shí)(UP)的位圖。
第二個(gè)參數(shù)為按鈕按下時(shí)(DOWM )的位圖。
第三個(gè)參數(shù)為按鈕是焦點(diǎn)時(shí)(Focused)的位圖。
第四個(gè)參數(shù)為按鈕不可用時(shí)(Disabled)的位圖。