天天看點

MFC—— 在按鈕上加圖示與文字共同顯示

先給大家推薦兩個ICON,PNG圖示庫網站:http://sc.chinaz.com/tubiao/RuanJianTuBiao.html(圖檔多,相當時尚,進去之後你會吃驚,這些就是你想要的)   http://www.easyicon.cn/ (特點:圖檔多!好多!相當多!)

要設計一個漂亮的按鈕,要麼搞成位圖按鈕,要麼加ico圖檔,但是那樣文字就沒法顯示了,除非把文字先寫到圖檔上,利用電腦自帶的畫圖軟體即可搞定,效果也是很不錯的。

1.a. 先說位圖按鈕(bmp圖檔的)(簡單的說)

Onpaint裡加:

[cpp]  view plain  copy  

  1. HBITMAP hBitmap;                            
  2. hBitmap = (HBITMAP)::LoadImage(     
  3. NULL,     
  4. ".\\images\\text_01.bmp",               // 圖檔相對路徑  
  5. IMAGE_BITMAP,                              // 圖檔格式    
  6. 0,0,     
  7. LR_LOADFROMFILE|LR_CREATEDIBSECTION);   

然後:((CButton *)GetDlgItem(IDC_BUTTON_TEXT_01))->SetBitmap(hBitmap);   //随便加哪裡,Init 裡也行

b.如果用CBitmapButton 就隻需在 .h檔案中加 CBitmapButton m_soundBtn;

屬性設定為Owner Draw,順便設定一下Modal Frame 為 true 好看一些

然後在OnInitDialog() 中加:m_btnUp.LoadBitmaps(IDB_BUTTON_UP_R, IDB_BUTTON_UP_S, IDB_BUTTON_UP_F, NULL); //後面的三個參數也可以是圖檔,分别表示按下,獲得焦點,按鈕不可用。

然後,做了8個方向按鈕,效果是這樣滴:按下 、 跟獲得焦點 是另外的圖。

MFC—— 在按鈕上加圖示與文字共同顯示

c.

  1. 打開BITMAP按鈕的屬性頁,在Style中選中Bitmap。   

  2. 對話框類的頭檔案中定義成員變量CButton   m_IconBtn;

  3.建立位圖資源:位圖資源:IDB_BITMAPBUTTON   

  4.在初始化中加入如下代碼:     

  //對應于位圖按鈕   

  …   

  HBITMAP hBmp=::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAPBUTTON));

  m_BmpBtn.SetBitmap(hBmp);   

2.再來一個ico圖示的:(居中,但是掩蓋了文字)

先在.h裡聲明:HICON m_hicn1(不在頭檔案裡聲明就要加就要在最後加m_hicn1.Detach();)

   m_hicn1=AfxGetApp()->LoadIcon(IDI_ICON1);

   m_button_text_01.SetIcon(m_hicn1);

3. 關于自繪位圖按鈕:http://www.codeproject.com/KB/buttons/XButtonXP.aspx

                                    http://www.codeproject.com/KB/buttons/FooButton.aspx

4.最後是加bmp圖檔,并且與文字同時顯示。

首先要用到codejock Xtreme ToolkitPro 關于它的使用,參照:http://blog.csdn.net/abidepan/article/details/7893632

下載下傳:http://download.csdn.net/detail/abidepan/4538677

準備工作做好之後,開始重載button

如button_01 之前關聯控件變量m_button_01,代碼是這樣的:CButton m_realPlayPageBtn;

我們要做的就是把CButton 改成 CXTPButton。

然後在Dlg::OnInitDialog()裡: m_realPlayPageBtn.SetBitmap(0, IDB_REALPALY);;  //加bmp圖檔

其他的button類似以上代碼。 做好的樣子是這樣的:

MFC—— 在按鈕上加圖示與文字共同顯示

5.當然還有其他方法,不太會,以後慢慢學~

樹控件加圖示:http://blog.csdn.net/abidepan/article/details/7922417

标題欄加圖示:http://blog.csdn.net/abidepan/article/details/7922402

6、今天做了個靜音的按鈕,是在 4  的基礎上做的,記錄一下。效果是這樣的。

MFC—— 在按鈕上加圖示與文字共同顯示
MFC—— 在按鈕上加圖示與文字共同顯示

在 上面 4 的基礎上,在頭檔案中加:

afx_msg void OnBnClickedButtonSound();

bool click;   //定個标記

然後  ON_BN_CLICKED(IDC_BUTTON_SOUND, &CFuncPannelDlg::OnBnClickedButtonSound)

再然後 :

[cpp]  view plain  copy  

  1. void CFuncPannelDlg::OnBnClickedButtonSound()  
  2. {  
  3. // TODO: 在此添加控件通知處理程式代碼  
  4. if (click)  
  5. {  
  6. m_soundBtn.SetBitmap(0, IDB_SILENCE);   //就是上面的第二張圖  
  7. click = false;  
  8. }  
  9. else  
  10. {  
  11. m_soundBtn.SetBitmap(0, IDB_SOUND);   // 上面的第一張圖   
  12. click = true;  
  13. }   
  14. }