VC按鈕控件實現指示燈效果


VC為按鈕控件添加圖片的方法有很多種:

  • 直接調用SetBitmap;  CButton pButton->SetBitmap(hBitmap);
  • 使用CButtonST控件;
  • 使用CDC;
  • 使用CBitmapButton;

這里主要講解CBitmapButton的使用,CBitmapButton作為MFC的控件類,具體使用如下:

創建一個新的基於對話框的MFC工程

  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. 使用CBitmapButton::LoadBitmaps裝載各種狀態的圖片,再用SubclassDlgItem關聯到想要的按鈕,使用
    CBitmapButton::SizeToContent函數使按鈕適合圖片大小。注意Loadbitmaps一定要在關聯到按鈕之前進行!
  6. 為按鈕控件添加單擊事件處理函數,輸入如下代碼:
  7. 按理來說,寫上m_ctrlButton.LoadBitmaps(圖片ID);就可以了,可是這樣做之后,發現按鍵了沒反應。無意中將對話框最小化再還原,發現圖片變了。所以實際上是沒有進行刷新導致的。在后面加上m_button.Invalidate()就可以了。
  8. 運行程序
  9. 單擊控件按鈕變成紅色


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM