刚开始学习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!