CBitmapButton的用法

我們有時希望對應按鈕的不同狀態,按鈕可以有不同的顯示形式。比如通常情況下按鈕的四種狀態

正常顯示 (Up)     鼠標按下(Down)        獲得焦點(Focus)        不可用(Disable)

因此可以用四張位圖來對應這四種狀態,我們不需要爲每一種狀態單獨加載位圖,只需要利用

CBitmapButton類即可   

總共有兩種方法實現:

下面先說第一種:

假如有四張位圖:IDB_BMP_UP    IDB_BMP_DOWN     IDB_BMP_FOCUS          IDB_BMP_DISABLE   

給對話框添加一個CBitmapButton類的對象    m_bmpBtn;

在對話框上方一個按鈕 ID :  IDC_BTN_IMG       設置Owner draw屬性

然後在OnInitDialog中:

m_bmpBtn.LoadBitmaps( IDB_BMP_UP,IDB_BMP_DOWN,IDB_BMP_FOCUS,IDB_BMP_DISABLE);

m_bmpBtn.SubclassDlgItem( IDC_BTN_IMG , this );即可

其中SubclassDlgItem(UINT  nID, CWnd* pParent)用來將m_bmpBtn和IDC_BTN_IMG關聯起來

第二種方法:

用AutoLoad(UINT  nID, CWnd* pParent),顧名思義,就是自動爲按鈕加載位圖

可是光看這個函數似乎跟位圖 並沒有扯上關係啊???

這就需要從位圖的命名上下功夫了,直接使用上面的位圖是不可以的,需要重新命名一下

假如按鈕的caption爲:image(一定要有)   則四張位圖分別爲:

"imageU"    "imageD"    "imageF"   "imageX"  

注意四張位圖的的ID 是有雙引號

發佈了31 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章