设为首页 加入收藏

TOP

15.11 使用CBitmapButton类
2013-10-07 00:34:25 来源: 作者: 【 】 浏览:63
Tags:15.11 使用 CBitmapButton

15.11  使用CBitmapButton类

MFC中,默认的按钮控件是显示文字的,使用CBitmapButton可以使得按钮以图形化的形式显示出来。

//VC98\MFC\Include\AFXEXT.H,省略部分代码
class CBitmapButton : public CButton
{
DECLARE_DYNAMIC(CBitmapButton)
public:
// Construction
CBitmapButton();

BOOL LoadBitmaps(LPCTSTR lpszBitmapResource,
LPCTSTR lpszBitmapResourceSel = NULL,
LPCTSTR lpszBitmapResourceFocus = NULL,
LPCTSTR lpszBitmapResourceDisabled = NULL);
BOOL LoadBitmaps(UINT nIDBitmapResource,
UINT nIDBitmapResourceSel = 0,
UINT nIDBitmapResourceFocus = 0,
UINT nIDBitmapResourceDisabled = 0);
BOOL AutoLoad(UINT nID, CWnd* pParent);
protected:
// all bitmaps must be the same size
CBitmap m_bitmap;           // normal image (REQUIRED)
CBitmap m_bitmapSel;        // selected image (OPTIONAL)
CBitmap m_bitmapFocus;      // focused but not selected (OPTIONAL)
CBitmap m_bitmapDisabled;   // disabled bitmap (OPTIONAL)

virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
};

CBitmapButton加载4个位图(使用LoadBitmaps函数和AutoLoad函数),分别用于显示按钮的正常状态、按下时的状态、具有输入焦点时的状态、不可用时的状态,下面举例说明其用法。步骤如下:

(1)创建基于对话框的MFC应用程序。

(2)在主对话框中放入一个Button空间,调整适当大小,为其添加CButton类型变量m_btnBitmap,如图15.7所示。

(3)设置该按钮风格为Owner draw,如图15.8所示。

图15.7  对话框布局
图15.8  设置Owner draw风格

(4)在资源视图中创建或导入4副位图,分别设置ID为IDB_BITMAP1、IDB_BITMAP2、IDB_BITMAP3、IDB_BITMAP4,注意这4副位图的大小必须相同并和按钮的大小一致,如图15.9所示。

(5)修改m_btnBitmap类型为CBitmapButton。

(6)修改主对话框的OnInitDialog函数,添加如下代码:

BOOL CMFCDlg::OnInitDialog()
{
CDialog::OnInitDialog();
 // 省略相关代码
// 加载图片
m_btnBitmap.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP4);
return TRUE;  // return TRUE  unless you set the focus to a control
}

(7)按Ctrl+F5键编译并运行程序,效果如图15.10所示。

图15.9  IDB_BITMAP2示意图
图15.10  CBitmapButton按钮效果图
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇15.12 使用CToolTipCtrl类实现提.. 下一篇15.15 如何创建"上下文"..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: