CBitmapDialog 的使用
在所有步驟之前,先添加按鈕各個狀態所需的位圖資源。
1 在對話框應用程序中添加Button1(ID為IDC_BUTTON1)。在屬性的Style標簽下選擇Owner draw即可,不需要選擇Bitmap屬性!
2 在程序中定義一個CBitmapButton成員變量bmButton。不能使用ClassWizard為按鈕映射一個CButton變量,然后改為CBitmapButton,這么做并不能將按鈕直接映射為CBitmapButton類的對象,反而會出現初始化錯誤。
3 使用CBitmapButton::LoadBitmaps裝載各種狀態的圖片,使用SubclassDlgItem關聯到想要的按鈕,使用CBitmapButton::SizeToContent函數使按鈕適合圖片大小。注意Loadbitmaps一定要在關聯到按鈕之前進行!
在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("裝載位圖出錯!");
bmButton.SubclassDlgItem(IDC_BUTTON1,AfxGetMainWnd());
bmButton.SizeToContent();
return TRUE; // return TRUE unless you set the focus to a control
}
//對LoadBitmaps( ) 的一點說明:
第一個參數為按鈕沒有按下時(UP)的位圖。
第二個參數為按鈕按下時(DOWM )的位圖。
第三個參數為按鈕是焦點時(Focused)的位圖。
第四個參數為按鈕不可用時(Disabled)的位圖。