读书人

怎么实现MFC位图按钮

发布时间: 2012-03-26 15:46:56 作者: rapoo

如何实现MFC位图按钮
// CGraphicsDisplay 窗体视图

class CGraphicsDisplay : public CFormView
{
DECLARE_DYNCREATE(CGraphicsDisplay)

protected:
CGraphicsDisplay(); // 动态创建所使用的受保护的构造函数
virtual ~CGraphicsDisplay();

public:
enum { IDD = IDD_GRAPHICSDISPLAY };
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endif

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

DECLARE_MESSAGE_MAP()
public:
CButton b1;
};

如上代码所示,CFormView使用了一个对话框资源模板IDD_GRAPHICSDISPLAY,这个对话框资源是在对话框资源编辑器中可视化创建的。但拖动一个按钮控件到对话框后,我不知道怎么得到位图按钮,按钮属性编辑器中似乎没有提供位图资源属性。请大家帮帮忙,这该怎么办


[解决办法]
1 给你的按钮控件添加关联变量(如CButton m_btnTest),然后将这个变量的类型改为(CBitmapButton m_btnTest)

2 然后在初始化函数中:
m_btnTest.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP4); //IDB_BITMAP为按钮不同
状态时显示的位图,具体可以查看MSDN
m_btnTest.SubclassDlgItem(IDC_BUTTON_Test,this); //IDC_BUTTON_Test为按钮ID
m_btnTest.SizeToContent();

读书人网 >VC/MFC

热点推荐