MFC的CBitmapButton的使用指南

注意:此按钮使用前应该将按钮的属性:Owner Draw->True

注意:此按钮使用前应该将按钮的属性:Owner Draw->True

注意:此按钮使用前应该将按钮的属性:Owner Draw->True

一、语法

class CBitmapButton : public CButton

二、函数

“属性” 描述
CBitmapButton::AutoLoad 将对话框中的按钮与 类的对象关联,按 (加载) 位图,并调整按钮大小以适应 CBitmapButton 位图。
CBitmapButton::LoadBitmaps 通过从应用程序的资源文件加载一个或多个命名位图资源并将位图附加到对象来初始化 对象。
CBitmapButton::SizeToContent 调整按钮的大小以容纳位图。

1、函数:LoadBitmaps

BOOL CBitmapButton::LoadBitmaps(UINT nIDBitmapResource,
	UINT nIDBitmapResourceSel, UINT nIDBitmapResourceFocus,
	UINT nIDBitmapResourceDisabled)

函数接受四个参数,也就是位图资源的ID,分别对应如下四个状态 :

  • 常规状态
  • 按下状态
  • 焦点状态
  • 禁用状态

当按钮处于不同状态就会自动切换到对应的图标显示。

2、函数:SizeToContent

调用此函数,将位图按钮的大小调整为位图的大小。

三、使用方法

具体的使用方法如下:

// 在头文件中 声明一个CBitmapButton对象
CBitmapButton m_BitmapBtn;

// 在初始化函数中初始化对象
m_BitmapBtn.LoadBitmaps(IDB_START_BITMAP);  // bitmapID
m_BitmapBtn.SubclassDlgItem(IDC_BUTTON1, this);// 按钮ID
m_BitmapBtn.SizeToContent();

如上为基本用法,也可以在按钮的点击函数中动态修改图片,如下:

void CSplashDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	if (true)
	{
		m_BitmapBtn.LoadBitmaps(XXXXXXXXXXX);
		m_BitmapBtn.Invalidate();
	}
	else
	{
		m_BitmapBtn.LoadBitmaps(YYYYYYYYYYY);
		m_BitmapBtn.Invalidate();
	}
}

PS:调用Invalidate是为了让图像刷新。

posted @ 2021-09-03 16:11  Abraverman  阅读(465)  评论(0编辑  收藏  举报