VC按钮控件实现指示灯效果
VC为按钮控件添加图片的方法有很多种:
- 直接调用SetBitmap; CButton pButton->SetBitmap(hBitmap);
- 使用CButtonST控件;
- 使用CDC;
- 使用CBitmapButton;
这里主要讲解CBitmapButton的使用,CBitmapButton作为MFC的控件类,具体使用如下:
创建一个新的基于对话框的MFC工程
- 首先添加按钮控件,将属性Owner Draw设为True,按钮ID: IDC_BUTTON1
- 添加位图资源ID: IDB_BITMAP_CLOSE IDB_BITMAP_RED
- 在对话框类中添加private成员变量: CBitmapButton m_button; bool LedFlag;
- 在初始化函数OnInitDialog里添加图片加载:

- 使用CBitmapButton::LoadBitmaps装载各种状态的图片,再用SubclassDlgItem关联到想要的按钮,使用
CBitmapButton::SizeToContent函数使按钮适合图片大小。注意Loadbitmaps一定要在关联到按钮之前进行! - 为按钮控件添加单击事件处理函数,输入如下代码:

- 按理来说,写上m_ctrlButton.LoadBitmaps(图片ID);就可以了,可是这样做之后,发现按键了没反应。无意中将对话框最小化再还原,发现图片变了。所以实际上是没有进行刷新导致的。在后面加上m_button.Invalidate()就可以了。
- 运行程序

- 单击控件按钮变成红色

VC按钮控件实现指示灯效果的更多相关文章
- WinRT自定义控件第一 - 转盘按钮控件
之前的文章中,介绍了用WPF做一个转盘按钮控件,后来需要把这个控件移植到WinRT时,遇到了很大的问题,主要原因在于WPF和WinRT还是有很大不同的.这篇文章介绍了这个移植过程,由于2次实现的控件功 ...
- 关于在storyboard拖按钮控件,手动设置代码不成功的问题
首先,在 storyboard 中拖拽一个按钮控件.设置好约束条件
- MFC动态创建对话框中的按钮控件并创建其响应消息
转自:http://www.cnblogs.com/huhu0013/p/4626686.html 动态按钮(多个)的创建: 1.在类中声明并定义按钮控件的ID #define IDC_D_BTN 1 ...
- Qt编写自定义控件11-设备防区按钮控件
前言 在很多项目应用中,需要根据数据动态生成对象显示在地图上,比如地图标注,同时还需要可拖动对象到指定位置显示,能有多种状态指示,安防领域一般用来表示防区或者设备,可以直接显示防区号,有多种状态颜色指 ...
- Qt编写自定义控件9-导航按钮控件
前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有的CSS2 ...
- C#自定义Button按钮控件
C#自定义Button按钮控件 在实际项目开发中经常可以遇到.net自带控件并不一定可以满足需要,因此需要自定义开发一些新的控件,自定义控件的办法也有多种,可以自己绘制线条颜色图形等进行重绘,也可以采 ...
- Java按钮控件数组实现计算器界面
编写程序,通过按钮数组来管理界面中的所有按钮控件,从而使用最少的代码实现模拟的计算器界面. 思路如下: 创建一个类,通过extends使其继承窗体类JFrame: 创建一个JFrame对象,使用JFr ...
- MFC基于对话框风格按钮控件添加图片的方法(大神止步)
菜鸟还在研究这个东西,大神就不要看了.一直都在觉得用VC或VS建立的对话框总是全灰色感觉太单调了,如果可以在上面添加一些漂亮的图片就好了,今天终于实现了.其实挺简单的,下面就分几个步骤讲一下: 第一步 ...
- 基于C#开发的扩展按钮控件
最近在准备一套自定义控件开发的课程,下面将第一个做的按钮控件分享给大家. 其实这个控件属于自定义控件中的扩展控件,与组合控件和GDI+开发的控件不同,这个控件是继承原生的Button, 这个控件的目的 ...
随机推荐
- 解决win7 64位中 魔方与TortoiseSVN的冲突解决【2014-02-10】
原文地址:http://www.cnblogs.com/hbbbs/p/3542479.html 现象 启动后弹出SendRpt:Error的提示框,然后变成soap1.2 fault.关闭后,又会自 ...
- 23+ Useful HTML5 Open Source Online Video Players & Libraries,
Akamai’s Open Video Player for HTML5 <video> Akamai has released a new Open Video Player for H ...
- C++面试题:list和vector有什么区别?
原文:http://genwoxuevc.blog.51cto.com/1852984/503337 C++面试题:list和vector有什么区别?考点:理解list和vector的区别出现频率:★ ...
- Golang学习 - sync 包
------------------------------------------------------------ 临时对象池 Pool 用于存储临时对象,它将使用完毕的对象存入对象池中,在需要 ...
- Prepared statements(mysqli & pdo)
参考: http://php.net/manual/en/mysqli.quickstart.prepared-statements.php http://www.ultramegatech.com/ ...
- dpkg的用法
转载:http://blog.csdn.net/sunjiajiang/article/details/7252593 dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理De ...
- 深入理解 iOS 开发中的锁
来源:伯乐在线 - 夏天然后 链接:http://ios.jobbole.com/89474/ 点击 → 申请加入伯乐在线专栏作者 摘要 本文的目的不是介绍 iOS 中各种锁如何使用,一方面笔者没有大 ...
- CSS 之 控制图片与文字对齐
文字旁边搭配图片时,发现图片比文字靠上,原来默认的情况是图片顶对齐而文字底对齐,通过设置css属性可以使得图片与文字对齐. 设置各对象的vertical-align属性,属性说明: baseline- ...
- 使用get方式提交数据
get提交代码 import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLE ...
- 【Amazon Linux】免费搭建subversion服务器
Amazon的EC2服务器可以免费试用一年.在这里申请: https://aws.amazon.com/cn/free/ 尝试把它弄成一个svn库来保存代码.按照 http://northwaygam ...