LEDBUTTON类简单描述及总结

文件定义
...
#include "LedButton.h"
...
class DemoDlg : public CDialog
{
   ...
private:
   ...
   CLedButton m_ledCtrl;
};

 

void CDemoDlg::DoDataExchange(CDataExchange* pDX)
{
   ...
   DDX_Control(pDX, IDC_LED_CHECK, m_ledCtrl);
   ...
}

 

2色设定,即2个状态(如亮或灭,红或蓝):

SetIcons();  //设置OFF及ON图标

m_ledCtrl.SetIcons(IDI_GRAY_ICON, IDI_YELLOW_ICON);

若需要改变图标大小,使用SetIcon() ,在亮或灭切换中使用大小图标效果不错!

m_ledCtrl.SetIcon(LED_BUTTON_STATE_OFF, IDI_GRAY_ICON, 14,14);
m_ledCtrl.SetIcon(LED_BUTTON_STATE_ON, IDI_YELLOW_ICON, 14,14);

 

SetLedState()  //完成LED颜色的设定,在每次想要改变LED颜色时

 m_ledCtrl.SetLedState(LED_BUTTON_STATE_ON);

多色调用时,可以设定一个枚举类型,用来描述每种颜色的状态,方便调用,如:

    enum EMyLedState {
        GRAY_LED_STATE = LED_BUTTON_STATE_ON,     // Initial LedState
        GREEN_LED_STATE,
        YELLOW_LED_STATE,
        RED_LED_STATE,
        BLUE_LED_STATE,
        
        MY_LED_STATES_SENTINEL    // Not to be used as a EMyLedState.
    };

初始化时需要设定LED的最大数量,即SetLedStateSNumber(),传递枚举成员的数量

    ...
    m_ledCtrl.SetLedStatesNumber(MY_LED_STATES_SENTINEL);
    m_ledCtrl.SetIcon(GRAY_LED_STATE, IDI_GRAY_ICON);
    m_ledCtrl.SetIcon(GREEN_LED_STATE, IDI_GREEN_ICON);
    m_ledCtrl.SetIcon(YELLOW_LED_STATE, IDI_YELLOW_ICON);
    m_ledCtrl.SetIcon(RED_LED_STATE, IDI_RED_ICON);
    m_ledCtrl.SetIcon(BLUE_LED_STATE, IDI_BLUE_ICON);
    ...

..

上面的LED在设定后就会一直处于某种状态,不改变,若要实现;LED灯不停的闪烁,则我们需要一个活动的LED按钮

我们可以使用SetLedActivityTimer()  函数,它会让你传递一个计时器的ID号和间隔的时间,当ID为非零时,则在每次调用 SetLedState()函数时,则会触发LedButton类中的一个内部计时器,它会设定LED灯状态到LED_BUTTON_STATE_OFF当间隔时间到达时,则LED按钮关闭.

我们在设计不停闪烁状态时,可以将亮灯的状态放入我们写好的一个计时器中,则在每次循环时,都会触发亮灯状态,而熄灭的状态则有LedButton自行触发.

总结:

1.简单2种颜色切换显示,就使用SetIcon或setIcons及SetLedState来实现

2.2种以上颜色切换显示,使用SetLedStatesNumber函数,传递枚举成员数量及SetLedState实现

3.LED闪烁状态,使用SetLedActivityTimer,在SetLedState函数中会对所有非灭状态的LED,触发计时器,一旦LED熄灭,则计时器关闭.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值