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()就可以了。
- 運行程序

- 單擊控件按鈕變成紅色

