MFC中 给按钮添加图片的方法
方法一:直接給CButton加圖片。
1.在資源編輯器中添加一個按鈕,把它的Bitmap屬性設為true
2.在按鈕上點右鍵,添加一個變量m_Btn(CButton類型的)
3.將圖片導入到資源管理器中,ID為IDB_BITMAP1
4.然后在初始化中加入如下代碼:
???HBITMAP?hBmp=::LoadBitmap(AfxGetInstanceHandle(),??MAKEINTRESOURCE(IDB_BITMAP1));???
???m_Btn.SetBitmap(hBmp);
?
?? 如果是加載非資源圖片的話,就在初始化中加入下代碼:
?? HBITMAP hBitmap?=?(HBITMAP)::LoadImage(?
???????????????? NULL,??
???????????????? "E://a.bmp",?????????????????????? //?圖片全路徑?
???????????????? IMAGE_BITMAP,?????????????????? //?圖片格式?
???????????????? 0,0,??
???????????????? LR_LOADFROMFILE|LR_CREATEDIBSECTION);??//?注意LR_LOADFROMFILE
?? 然后獲得按鈕句柄并調用SetBitmap即可。
這樣按鈕上的文字就被圖片取而代之了,但是我感覺不太好看。
?
方法二:利用CBitmapButton,可以很容易地做出點動態的效果。
1.在資源編輯器中添加一個按鈕.
?????把它的Owner Draw屬性設為true.
?????把它的ID設為IDC_BUTTON1.
?????把它的Caption改成BITMAP_BUTTON
2.準備4張圖片(只準備其中一兩張也可以),添加到資源管理器中
?????正常狀態時的按鈕圖片?????的ID設為"BITMAP_BUTTONU"
?????鼠標按下時的按鈕圖片?????的ID設為"BITMAP_BUTTOND"
?????鼠標點擊過后的按鈕圖片??的ID設為"BITMAP_BUTTONF"
?????按鈕失效后的圖片??????????的ID設為"BITMAP_BUTTONS"
?????注意:一定要左右都帶雙引號!
?????其實就是 "按鈕的Caption+U或D或F或S"
3.在dlg的頭文件里添加一個CBitmapButton類型的成員變量m_bbtn
4.在初始化中加入以下代碼
???m_bbtn.AutoLoad(IDC_BUTTON1,?this);
?
注意:如果對按鈕(CButton)用向導添加了Control變量的話,把DDX_Control(pDX, IDC_BUTTON1, m_btn1);這一行注釋掉就可以了。
?
方法三:使用CMFCButton
??? 1、在對話框編輯界面中,拖入一個button控件,改資源ID號為IDC_BUTTON_TEST。
??? 2、然后在CXXXDlg::OnInitDialog()中添加如下代碼:
?????? CMFCButton * button1 = new CMFCButton;?
? ? ?? button1->Create(_T("Test Button"),?
?????? WS_VISIBLE,?
? ? ?? CRect(160, 15, 280, 150),?
?????? this,?
?????? IDC_BUTTON_TEST);?
?????? // 加載圖片?
?????? button1->SetImage(IDB_BITMAP1);???? //IDB_BITMAP1為自己導入的圖片的ID
?
? 運行會發現出現了兩個按鈕,那么在對話框編輯界面中把Button1的Visible屬性設為False便可以了。
你可以用CBitmapButton類,你可以在對話框上添加一個button控件按鈕,讓后在代碼聲明的部分把CButton改成CbitMapButton,然后再初始化的時候調用Setbitmap就可以做出你要的效果了。
總結
以上是生活随笔為你收集整理的MFC中 给按钮添加图片的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC菜单栏(CMenu)控件
- 下一篇: MP3技术白皮书-音频格式全解析