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)的位图。