您的位置:首页 > 其它

MFC 位图按钮CBitmapButton 实现不同状态显示不同位图

2015-02-13 09:45 211 查看

 MFC 位图按钮CBitmapButton 实现不同状态显示不同位图

步骤如下:

1. 在对话框上拖放一个按钮(CButton)控件,设置ID(如:IDC_BUTTON5);别忘了设置Owner Draw(自绘)属性
2. 在对话框类添加成员变量(CBitmapButton类对象):
   CBitmapButton m_button;
3. 在初始化函数 OnInitDialog() 中调用 SubclassDlgItem() 将
派生类(CBitmapButton )的实例(m_button) 与对话框中的基类(CButton)控件相连接,则这个基类控件对象变成了派生控件对象;

    m_button.SubclassDlgItem(IDC_BUTTON5, this);
//第一个参数是要关联的按钮的ID,第二个参数是要关联的按钮所在的窗口的指针,一般为this;
3. 导入四种状态的位图到资源中并修改ID,正常:IDB_BTNU, 按下: IDB_BTND, 焦点:IDB_BTNF, 禁用:IDB_BTNX
4. 在初始化函数 OnInitDialog() 中调用CBitmapButton类实例的LoadBitmaps方法,载入四幅位图。
这四幅位图分别对应按钮的四种状态:正常(U)状态,按下(D)状态,获得焦点(F)状态,禁用(X)状态。
      m_button.LoadBitmaps( IDB_BTNU, IDB_BTND, IDB_BTNF, IDB_BTNX);
5. 在初始化函数 OnInitDialog() 中调用CBitmapButton::SizeToContent函数使按钮适合图片大小;
     m_button.SizeToContent(); //调整大小. 就完成了!!!
=================================================================

相比于上面还有一种比较省事的:

步骤如下:

1. 在对话框上拖放一个按钮(CButton)控件,设置Caption(如:MBUT)(与后面位图资源ID有关),还有别忘了设置Owner Draw(自绘)属性
2. 在对话框类添加成员变量(CBitmapButton类对象):
   CBitmapButton m_button;
3. 导入四种状态的位图到资源中并修改ID,正常:
"MBUTU" 按下: "MBUTD" 焦点:
"MBUTF" 禁用: "MBUTX" 别忘了双引号(" ")

4. 在初始化函数 OnInitDialog() 中调用CBitmapButton类实例的 AutoLoad() 方法,载入位图等工作.....
    m_button.AutoLoad(IDC_BUTTON5,
this);// 完成,没了!就这么多!


==============================================================================================================

=================================================================

效果如下:

 正常(U): 

 按下(D): 

 聚焦(F): 

 禁用(X): 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐