【MFC】vs2013_MFC使用文件之15.mfc 按鈕CBitmapButton的使用

本文是基於對話框的html

博文基於 無幻 的博文爲基礎寫的 http://blog.csdn.net/akof1314/article/details/4951836c++

筆者使用mfc撐死2個星期,不過這是有c++基礎的前提下接觸mfc,昨天看到了網上對qt creator的評論,感受好高大上,回去試了一下後發現,qt須要mfc的基礎,如果直接接觸qt的話會比較難,畢竟mfc是在vs的平臺下,你們學起來會比較順手。函數

回到正題,今天研究了下怎麼使用mfc中的位圖按鍵,發現實現方法挺多,可是對於小白來講,不少做者認爲簡單的都會略過,恰巧那些簡單的就是我不會的,結果又看不懂。除了mfc自有的CBitmapButton外,在網上還看到有關於CButtonST的使用,應該是會比CBitmapButton簡單,筆者看的是CBitmapButton,那這裏就不講CButtonST。this

兩位csdn博主對CButtonST使用的連接:.net

DoubleLi:  http://www.cnblogs.com/lidabo/archive/2012/12/17/2821122.html設計

wqvbjhc:  http://blog.csdn.net/wqvbjhc/article/details/125806693d

 

首先 會用到如下CBitmapButton類的函數htm

LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS,IDB_DISABLE);blog

//載入圖片 IDB_UP, IDB_DOWN, IDB_FOCUS,IDB_DISABLE 這四個均爲bitmapID圖片

BOOL LoadBitmaps( 
   LPCTSTR lpszBitmapResource, 
   LPCTSTR lpszBitmapResourceSel = NULL, 
   LPCTSTR lpszBitmapResourceFocus = NULL, 
   LPCTSTR lpszBitmapResourceDisabled = NULL  
); 
bitmap的載入

回到資源視圖就能夠看到  資源視圖打開的方法:視圖-》其餘窗口-》資源視圖

 

SubclassDlgItem(按鈕ID, this);//關聯按鈕

SizeToContent();//讓按鈕隨圖片大小變化

GetDlgItem(按鈕ID)->EnableWindow(FALSE);//開啓按鈕的禁止狀態

 

如今開始作

1.在對話框出拖入一個按鈕,,其ID爲IDC_BUTTON1

2.設置按鈕屬性中的Owner Draw爲TRUE 

3.在::OnInitDialog();前添加   CBitmapButton m_btnX1;//必須放在函數外面才能正常實現  

4.導入按鈕位圖,這裏四幅圖大小要一致,如下是四種狀體的按鈕,若讀者要實驗此次的設計的話,能夠右鍵另存爲,而後用「畫圖」把png格式的另存爲bmp格式的。在資源視圖,右鍵「添加資源」,「導入」如下圖片:

5.初始化工做,在對話框的OnInitDialog()函數裏面添加如下代碼:

m_btnX1.LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS,IDB_DISABLE);//
// 也能夠只加一個ID資源;
m_btnX1.SubclassDlgItem(IDC_BUTTON_TEST2, this);
m_btnX1.SizeToContent();

到這裏已經完成了位圖按鈕的實現,編譯運行能夠看到結果。

其實這個時候你能看到後三幅圖的的效果,爲什disable的看不到,是由於這個禁止的狀態你沒有打開,打開須要

GetDlgItem(按鈕ID)->EnableWindow(FALSE);  //爲false是是開啓禁止狀態,爲true時則是關閉狀態

這時候四個圖標你都能看到了。

若是你想作鼠標移動到按鈕上,按鈕會變其餘圖案的效果,請看 無幻 http://blog.csdn.net/akof1314/article/details/4951836/;

 

本文用到的資料:  只想說一句 csdn太強大了。

http://blog.csdn.net/leixiaohua1020/article/details/12753967 http://blog.csdn.net/akof1314/article/details/4951836/ http://bbs.csdn.net/topics/100184465 https://msdn.microsoft.com/en-us/library/6y6acs49(v=vs.120).aspx

相關文章
相關標籤/搜索