使用CBitmapButton类创建位图按钮
来源:互联网 发布:四川泸州网络歌手大赛 编辑:程序博客网 时间:2024/05/20 06:51
在网上查了很多资料,大都语焉不详,今天自己做了个位图按钮做测试,特将网上的资料整理如下:
CBitmapButton是一个MFC内置的按钮类,提供图片按钮的功能,并且支持在不同状态下显示不同图片。其使用方法比较简单,比CButton更美观,比其它的第三方Button类更简洁,因此,制作位图按钮时经常需要用到它。
方法一:
1、在资源编辑的时候选中按钮的 Owner draw 属性,不需要选择 Bitmap 属性.
按钮右键-->Styles-->Owner draw
2、在程序中定义一个CBitmapButton成员变量。
注意:不能使用ClassWizard为按钮映射一个CButton变量,然后改为CBitmapButton,
这么做并不能将按钮直接映射为 CBitmapButton类的对象,反而会出现初始化错误
3、使用CBitmapButton::LoadBitmaps装载各种状态的图片,
使用CBitmapButton::SubclassDlgItem关联到想要的按钮,
使用CBitmapButton::SizeToContent函数使按钮适合图片大小。
注意Loadbitmaps一定要在关联到按钮之前进行!
首先,选中按钮的owner Draw属性,在资源中加载两副*.bmp格式的位图,
然后在对话框类中加入:
此方法与下面方法二的主要区别在于:
方法一不需要对位图及按钮的命名做关联要求
而方法二则需要对位图与按钮直接做命名关联
方法二:
CBitmapButton的简易攻略如下:
1.在MFC Dialog工程中,在一个Dialog中添加一个按钮,设置ID为IDC_BUTTON_TEST, Caption为BUTTON_TEST,并且把Style中的Owner Draw属性选上。(注意Caption命名和ID命名的关系)
2.添加按钮的图片到资源中
假设图片为以下几个:
test_up.bmp 正常状态时的按钮图片
test_down.bmp 鼠标按下时的按钮图片
test_focused.bmp 鼠标点击过后的按钮图片
test_disable.bmp 按钮失效后的图片
则分别设置其ID为:(注意,一定要左右都带双引号)
"BUTTON_TESTU"
"BUTTON_TESTD"
"BUTTON_TESTF"
"BUTTON_TESTS"
3. 在程序中定义一个CBitmapButton成员变量。
注意:不能使用ClassWizard为按钮映射一个CButton变量,然后改为CBitmapButton,
这么做并不能将按钮直接映射为 CBitmapButton类的对象,反而会出现初始化错误
4. 在OnInitDialog()函数中,将位图与具体按钮关联,注意关联的具体按钮的ID与Caption 及位图资源ID必须符合第1、2条的规范。
m_Button.AutoLoad(IDC_BUTTON_TEST,this);
注意,使用此方法,不必用LoadBitmap()加载资源,因为编译器自动根据命名规范,将位图资源与具体按钮关联起来了。
参考资料:
http://blog.sina.com.cn/s/blog_44e571d70100080o.html
http://blog.163.com/yanghua9981@126/blog/static/262925712007623105417327/
http://www.itqun.net/content-detail/123911.html
http://www.cnblogs.com/qqingmu/archive/2007/09/06/884840.html
http://topic.csdn.net/t/20021107/14/1156670.html
http://blog.csdn.net/hityct1/archive/2009/02/03/3859286.aspx
http://blog.sina.com.cn/s/blog_4d90492b01000f2h.html
如果此文对您有所帮助,还望点击一下以下网站:
360导航
2345导航
- 使用CBitmapButton类创建位图按钮
- 使用CBitmapButton类创建位图按钮
- 使用CBitmapButton类创建位图按钮
- VC 位图按钮CBitmapButton的使用
- VC 位图按钮CBitmapButton的使用
- VC 位图按钮CBitmapButton的使用
- VC 位图按钮CBitmapButton的使用
- VC 位图按钮CBitmapButton的使用
- VC 位图按钮CBitmapButton的使用
- VC 位图按钮CBitmapButton的使用
- 图标按钮、位图按钮、CBitmapButton 类位图按钮的制作
- CBitmapButton位图按钮 WinCE 下无法正常使用
- CBitmapButton位图按钮简明教程
- 图标按钮、位图按钮、CBitmapButton类位图按钮、按钮的自绘制
- 利用CBitmapButton类实现位图按钮的两种方法
- 利用CBitmapButton类实现位图按钮的两种方法
- 利用CBitmapButton类实现位图按钮的两种方法
- 利用CBitmapButton类实现位图按钮的方法
- 指针学习笔记
- seo优化:如何写伪原创文章
- MultiByteToWideChar和WideCharToMultiByte用法详解
- Java 内存管理原理、内存泄漏实例及解决方案研究
- [经验总结]Perl模块使用 => 简短例子代码集合
- 使用CBitmapButton类创建位图按钮
- LR8.1中文版下载(红色最新下载地址)
- Windows客户端与Android服务端的Socket通信
- 使用正则表达式去掉字符串左右空格
- android 使用socket与pc传递对象的问题
- http://java.sun.com/javase/6/webnotes/trouble/TSG-Desktop/html/java2d.html
- 禁止开机时自动启动软件
- java连接sql server2005
- android Socket连接【java.net包实现的socket连接client】