VC 按键控件实现指示灯效果

      1. 首先添加按钮控件,将属性Owner Draw设为True,按钮ID: IDC_BUTTON1
      2. 添加位图资源ID: IDB_BITMAP_CLOSE    IDB_BITMAP_RED
      3. 在对话框类中添加private成员变量: CBitmapButton m_button;    bool LedFlag;
      4. 在初始化函数OnInitDialog里添加图片加载:
      5. 演示效果图片0
      6. 使用CBitmapButton::LoadBitmaps装载各种状态的图片,再用SubclassDlgItem关联到想要的按钮,使用
        CBitmapButton::SizeToContent函数使按钮适合图片大小。注意Loadbitmaps一定要在关联到按钮之前进行!
      7. 为按钮控件添加单击事件处理函数,输入如下代码:
      8. 演示效果图片1
      9. 按理来说,写上m_ctrlButton.LoadBitmaps(图片ID);就可以了,可是这样做之后,发现按键了没反应。无意中将对话框最小化再还原,发现图片变了。所以实际上是没有进行刷新导致的。在后面加上m_button.Invalidate()就可以了。
      10. 运行程序
      11. 演示效果图片2
      12. 单击控件变成红色

演示效果图片3

原文地址:https://www.cnblogs.com/killer-xc/p/5800515.html