打算在按钮上载入位图,按照网上的方法写。按钮是通过mfc直接拖曳上去的,而不是通过create函数创建,代码如下
CBitmapButton bmap;
bmap.LoadBitmaps(IDB_MAP1);
bmap.SubclassDlgItem(IDC_BUTTON1,this);
bmap.SizeToContent();//执行这一步出错
通过debug发现错误:void CBitmapButton::SizeToContent()
{
ASSERT(m_bitmap.m_hObject != NULL); //这一行报错
CSize bitmapSize;
BITMAP bmInfo;
VERIFY(m_bitmap.GetObject(sizeof(bmInfo), &bmInfo) == sizeof(bmInfo));
VERIFY(SetWindowPos(NULL, -1, -1, bmInfo.bmWidth, bmInfo.bmHeight,
SWP_NOMOVE|SWP_NOZORDER|SWP_NOREDRAW|SWP_NOACTIVATE));
}
CBitmapButton bmap;
bmap.LoadBitmaps(IDB_MAP1);
bmap.SubclassDlgItem(IDC_BUTTON1,this);
bmap.SizeToContent();//执行这一步出错
通过debug发现错误:void CBitmapButton::SizeToContent()
{
ASSERT(m_bitmap.m_hObject != NULL); //这一行报错
CSize bitmapSize;
BITMAP bmInfo;
VERIFY(m_bitmap.GetObject(sizeof(bmInfo), &bmInfo) == sizeof(bmInfo));
VERIFY(SetWindowPos(NULL, -1, -1, bmInfo.bmWidth, bmInfo.bmHeight,
SWP_NOMOVE|SWP_NOZORDER|SWP_NOREDRAW|SWP_NOACTIVATE));
}
m_bitmap没有成功载入图片,检查一下
拖上去的话添加成员变量
bmap不是成员变量 出了函数就没了
=================
1、右击按钮,在“属性”的“Styles”中选中“O所有者”
2.CBitmapButton bmap; //在定义其他控制变量处定义bmap,
3.DDX_Control(pDX, IDC_BUTTON1,bmap); //把控件和变量关联起来
4.在OnInitDialog函数中添加这条语句:bmap.LoadBitmaps(IDB_ADDRESS,NULL,NULL,NULL);