码迷,mamicode.com
首页 > 编程语言 > 详细

vs2013_MFC使用文件之15.mfc 按钮CBitmapButton的使用

时间:2015-06-11 22:24:07      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

本文是居于对话框的

笔者使用mfc撑死2个星期,不过这是有c++基础的前提下接触mfc,昨天看到了网上对qt creator的评论,感觉好高大上,回去试了一下后发现,qt需要mfc的基础,若是直接接触qt的话会比较难,毕竟mfc是在vs的平台下,大家学起来会比较顺手。

回到正题,今天研究了下怎么使用mfc中的位图按键,发现实现方法挺多,但是对于小白来说,很多作者认为简单的都会略过,恰巧那些简单的就是我不会的,结果又看不懂。除了mfc自有的CBitmapButton外,在网上还看到有关于CButtonST的使用,应该是会比CBitmapButton简单,笔者看的是CBitmapButton,那这里就不讲CButtonST。

两位csdn博主对CButtonST使用的链接:

DoubleLi:  http://www.cnblogs.com/lidabo/archive/2012/12/17/2821122.html

wqvbjhc:  http://blog.csdn.net/wqvbjhc/article/details/12580669

 

首先 会用到以下CBitmapButton类的函数

LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS,IDB_DISABLE);

//载入图片 IDB_UP, IDB_DOWN, IDB_FOCUS,IDB_DISABLE 这四个均为bitmapID

BOOL LoadBitmaps( 
   LPCTSTR lpszBitmapResource, 
   LPCTSTR lpszBitmapResourceSel = NULL, 
   LPCTSTR lpszBitmapResourceFocus = NULL, 
   LPCTSTR lpszBitmapResourceDisabled = NULL  
); 
bitmap的载入

技术分享技术分享技术分享技术分享技术分享

回到资源视图就可以看到 技术分享 资源视图打开的方法:视图-》其他窗口-》资源视图


SubclassDlgItem(按钮ID, this);//关联按钮

SizeToContent();//让按钮随图片大小变化

GetDlgItem(按钮ID)->EnableWindow(FALSE);//开启按钮的禁止状态

 

现在开始做

1.在对话框出拖入一个按钮,技术分享,其ID为IDC_BUTTON1技术分享

2.设置按钮属性中的Owner Draw为TRUE 

3.在::OnInitDialog();前添加   CBitmapButton m_btnX1;//必须放在函数外面才能正常实现  

4.导入按钮位图,这里四幅图大小要一致,以下是四种状体的按钮,若读者要实验这次的设计的话,可以右键另存为,然后用“画图”把png格式的另存为bmp格式的。在资源视图,右键“添加资源”,“导入”以下图片:

技术分享

5.初始化工作,在对话框的OnInitDialog()函数里面添加以下代码:

m_btnX1.LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS,IDB_DISABLE);//
// 也可以只加一个ID资源;
m_btnX1.SubclassDlgItem(IDC_BUTTON_TEST2, this);
m_btnX1.SizeToContent();

到这里已经完成了位图按钮的实现,编译运行可以看到结果。

其实这个时候你能看到后三幅图的技术分享的效果,为什disable的看不到,是因为这个禁止的状态你没有打开,打开需要

GetDlgItem(按钮ID)->EnableWindow(FALSE);  //为false是是开启禁止状态,为true时则是关闭状态

这时候四个图标你都能看到了。

如果你想做鼠标移动到按钮上,按钮会变其他图案的效果,请看 无幻 http://blog.csdn.net/akof1314/article/details/4951836/;

 

本文用到的资料:  只想说一句 csdn太强大了。

http://blog.csdn.net/leixiaohua1020/article/details/12753967
http://blog.csdn.net/akof1314/article/details/4951836/
http://bbs.csdn.net/topics/100184465
https://msdn.microsoft.com/en-us/library/6y6acs49(v=vs.120).aspx

 

vs2013_MFC使用文件之15.mfc 按钮CBitmapButton的使用

标签:

原文地址:http://www.cnblogs.com/ourran/p/4570063.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!