MFC 指示灯 状态灯 红绿灯 LED灯:对Static Text的拓展

前言

需要在界面上实时显示设备的状态,希望通过指示灯来显示,例如绿色代表正常,红色代表异常。
qt的实现方式见我的另一篇博文

1. 添加资源文件

打开vs新建MFC工程,打开资源视图,如下图所示,添加资源。
在这里插入图片描述
导入图片位图,这里我导入的是红绿灰三种颜色的bmp文件,添加完成后,修改其ID(右击资源文件,打开属性,在属性栏修改ID),如下图所示。
在这里插入图片描述

2. 为工程导入Led.cpp和Led.h

我的GitHub

3. 实现Led

在合适的位置添加一个text control控件,并修改其ID,这里我将其caption改为led(这个无所谓,不影响功能),将其ID改为IDC_LED_LINKSTATUS。
在这里插入图片描述
在这里插入图片描述
在主视窗类中声明类的CLed成员m_linkLed。

// CTCPSeverDlg 对话框
class CTCPSeverDlg : public CDialog
{
// 构造
public:
	CTCPSeverDlg(CWnd* pParent = NULL);	// 标准构造函数
/*我是省略号...*/
public:
	CLed m_linkLed;
};

在DoDataExchange函数中将IDC_LED_LINKSTATUS和m_linkLed关联起来。

void CTCPSeverDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control	(pDX, IDC_LED_LINKSTATUS, m_linkLed);		// “建立链接”LED
}

最后,在需要让Led变色的时候,调用如下代码。

	// “建立链接”LED 设为灰色
	m_linkLed.SetLed(CLed::LED_COLOR_GREY);
	// “建立链接”LED 设为红色
	m_linkLed.SetLed(CLed::LED_COLOR_RED);
	// “建立链接”LED 设为绿色
	m_linkLed.SetLed(CLed::LED_COLOR_GREEN);

效果如下:
刚打开软件时
在这里插入图片描述
开始监听后
在这里插入图片描述
建立链接时
在这里插入图片描述

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fourier_1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值