強(qiáng)大按鈕類CBttonST實(shí)例演示詳解(附源碼)

上傳人:飛*** 文檔編號:53825419 上傳時(shí)間:2022-02-11 格式:DOCX 頁數(shù):15 大?。?23.20KB
收藏 版權(quán)申訴 舉報(bào) 下載
強(qiáng)大按鈕類CBttonST實(shí)例演示詳解(附源碼)_第1頁
第1頁 / 共15頁
強(qiáng)大按鈕類CBttonST實(shí)例演示詳解(附源碼)_第2頁
第2頁 / 共15頁
強(qiáng)大按鈕類CBttonST實(shí)例演示詳解(附源碼)_第3頁
第3頁 / 共15頁

下載文檔到電腦,查找使用更方便

0 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《強(qiáng)大按鈕類CBttonST實(shí)例演示詳解(附源碼)》由會員分享,可在線閱讀,更多相關(guān)《強(qiáng)大按鈕類CBttonST實(shí)例演示詳解(附源碼)(15頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、強(qiáng)大按鈕類CBttonST實(shí)例演示詳解(附源碼) CButtonST類實(shí)例演示和介紹(附源碼) 作者: 日期: 這里給大家介紹強(qiáng)大的按鈕類CButtonST,可以使您的程序錦上添花。 CButtonST類主要包括BtnST.h、BtnST.cpp、BCMenu.h?口BCMenu.cpp四個(gè)文件。先將上述4個(gè)文件復(fù)制到自己的工程,然后在VC+稈發(fā)環(huán)境中打開該工程,選擇【Project\AddtoProject\Files…】,會彈出向工程插入文件的對話框,然后在工程所在目錄選擇上述4個(gè)文件,點(diǎn)擊【OK按鈕,添加4個(gè)文件到當(dāng)前工程,在SdtAfx.h文件中添加合適的include

2、語句,如#include"BtnST.h"。在接下來的文章中,我將根據(jù)演示程序向大家介紹CButtonST的各種常用方法。 以下是CButtonST類制作的演示界面(附有源碼): 效果一:在按鈕上加入Icon,使Icon和文字同時(shí)顯示 假設(shè)按鈕ID為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加Icon資源,設(shè)其ID設(shè)為IDI_ICON1 3 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.SubclassDlgItem(IDC_BUTTON1,this); mbtn.SetIcon(IDIICON1); m_bt

3、n.SetFlat(FALSE); 注意:為達(dá)到最好效果,請根據(jù)Icon的大小調(diào)整按鈕的大小。 實(shí)例:演示程序中的Standar按鈕。 Q效果二:顯示平面按鈕 只需要在效果一的基礎(chǔ)上把m_btn.SetFlat(FALSE);語句去掉。 0效果三:使按鈕上的圖標(biāo)可變 假設(shè)按鈕ID為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加兩個(gè)Icon資源,ID設(shè)為IDI_ICON1和IDI_ICON2IDI_ICON1是普通狀態(tài)的圖標(biāo),IDI_ICON2是按下時(shí)的圖標(biāo) 3 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.Subclas

4、sDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON2,IDI_ICON1); 實(shí)例:演示程序中的Halloween按鈕。 0效果四:設(shè)置按鈕在不同狀態(tài)下的底色和文字顏色 假設(shè)按鈕ID為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加Icon資源,設(shè)其ID設(shè)為IDI_ICON1 3 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetC010r

5、(CButtonST二BTNST_COLOR_BK_OUT,RGB(208,208,208)); m_btn.SetC010r(CButtonST二BTNST_COLOR_BK_FOCUS,RGB(208,208,208)); m_btn.OffsetC010r(CButtonST二BTNST_COLOR_BK_IN,30); 提示:SetColor函數(shù)和OffsetC010r函數(shù)的第一個(gè)參數(shù)表示按鈕的各個(gè)狀態(tài),前景色就是文字的顏色,它們的取值表示: BTNST_COLOR_BK_IN//鼠標(biāo)放在按鈕內(nèi)時(shí)的背景色BTNST_COLOR_FG_IN,//鼠標(biāo)放在按鈕內(nèi)時(shí)的前景色BTNST

6、COLORBKOUT,//普通狀態(tài)時(shí)的背景色 5 BTNST_COLOR_FG_OUT,//普通狀態(tài)時(shí)的前景色BTNST_COLOR_BK_FOCUS按鈕被按下后的背景色BTNST_COLOR_FG_FOCUS按鈕被按下后的前景色 實(shí)例:演示程序中的48X48icon按鈕、Zip按鈕等。。效果五:設(shè)置圖標(biāo)和文字的位置 假設(shè)按鈕ID為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加Icon資源,ID設(shè)為IDI_ICON1 3 .在OnInitDialog函數(shù)中初始化按鈕m_btn.SubclassDlgItem(IDC_BUTTON1

7、,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetAlign(CButtonST::ST_ALIGN_VERT); 提示:SetAlign函數(shù)的第一個(gè)參數(shù)表示位置信息,缺省情況下,文字在圖標(biāo)右邊 ST_ALIGN_HORIZ/文字在右ST_ALIGN_VERT//文字在下ST_ALIGN_HORIZ_RIGHT/fc字在左 實(shí)例:演示程序中的Search按鈕。 °效果六:根據(jù)Icon的形狀設(shè)置按鈕的形狀 假設(shè)按鈕ID為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加Icon資源,設(shè)其ID設(shè)為IDI_I

8、CON1 3 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.DrawBorder(FALSE); m_btn.SetColor(CButtonST二BTNST_COLOR_BK_OUT,RGB(208,208,208)); m_btn.SetColor(CButtonST二BTNST_COLOR_BK_IN,RGB(208,208,208)); m_btn.SetColor(CButtonST二BTNST_COLOR_BK_FOCUS

9、,RGB(208,208,208)); 注意:為達(dá)到最好效果,請根據(jù)Icon的大小調(diào)整按鈕的大小。 并根據(jù)實(shí)際情況設(shè)置背景顏色。請事先將按鈕的文字去掉。 3效果七:添加Tooltips 假設(shè)按鈕ID為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加Icon資源,設(shè)其ID設(shè)為IDI_ICON1 3 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetTooltipText(_T("Thisis

10、atooltip.\r\nMultiline!")); 效果一:改變鼠標(biāo)進(jìn)入按鈕時(shí)的形狀(超鏈接效果) 假設(shè)按鈕ID為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加Icon資源,設(shè)其ID設(shè)為IDI_ICON1 3 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.OffsetColor(CButtonST二BTNST_COLOR_BK_IN,30); m_btn.SetURL(""); m_

11、btn.SetTooltipText(""); m_btn.SetBtnCursor(IDC_CURSOR1); 0效果二:菜單按鈕 假設(shè)按鈕ID為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加Icon資源,設(shè)其ID設(shè)為IDI_ICON1 3 .添加MenuID設(shè)為IDR_MENU 4 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.OffsetColor(CButtonST二BTNST_C

12、OLOR_BK_IN,30); m_btn.SetMenu(IDR_MENU,m_hWnd); 注意:菜單的效果類似與右鍵菜單,所有在設(shè)置菜單選項(xiàng)時(shí)只設(shè)置一列就夠了C另外菜單的寬度與菜單的文字長度有關(guān),可以用空格占位的辦法以達(dá)到最佳效果。 在菜單中引入位圖的方法 1 .添加ToolBar,依次使用Menu<單項(xiàng)ID作為ToolBar按鈕的ID。 2 .ToolBar上的按鈕圖標(biāo)將顯示在相應(yīng)的菜單項(xiàng)中。 將上面代碼中的m_btn.SetMenu(IDR_MENU,m_hWnd); 改為m_btn.SetMenu(IDR_MENU,m_hWnd,TRUE,IDR_TOOLBAR);

13、 IDR_TOOLBAR相應(yīng)ToolBar的ID。 0效果三:位圖按鈕 假設(shè)按鈕ID為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加位圖資源,ID設(shè)為IDB_BITMAP1 3 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetBitmaps(IDB_BITMAP1,RGB(0,0,0)); m_btn.OffsetColor(CButtonST二BTNST_COLOR_BK_IN,30); 提示:上面的SetBitmaps函數(shù)會將圖片

14、中顏色值為RGB(0,0,0)的點(diǎn)設(shè)為透明 。效果四:按鈕焦點(diǎn) 假設(shè)按鈕ID為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加Icon資源,設(shè)其ID設(shè)為IDI_ICON1 3 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.SetAlign(CButtonST::ST_ALIGN_VERT); m_btn.DrawFlatFocus(TRUE); 。效果五:CheckBox按鈕 假設(shè)按鈕ID

15、為IDC_BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加Icon資源,ID設(shè)為IDI_ICON1和IDI_ICON2 3 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.SubclassDlgItem(IDC_CHECK1,this); m_btn.SetIcon(IDI_ICON1,IDI_ICON2); mbtn.OffsetColor(CButtonST二BTNSTCOLORBKIN,30); 提示: IDI_ICON1為選中時(shí)候顯示的圖標(biāo) IDI_ICON2為為選中時(shí)候的圖標(biāo) 。效果六:透明按鈕 假設(shè)按鈕ID為IDC_

16、BUTTON1 1 .添加成員變量 CButtonSTm_btn; 2 .添加Icon資源,ID設(shè)為IDI_ICON1 3 .在OnInitDialog函數(shù)中初始化按鈕 m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_ICON1); m_btn.DrawTransparent(TRUE); °效果七:特殊的PictureBox 利用CButtonST的特殊顯示風(fēng)格,完全可以把它當(dāng)作一個(gè)PictureBox控件使用這時(shí)一般會把按鈕的屬性設(shè)置為disable。 實(shí)例:演示程序的About頁中使用了CButto

17、nST來代替PictureBox。 一、CWinXPButtonS錢 CWinXPButtonS錢是一個(gè)CButtonST的派生類。它的特點(diǎn)是使用了WindowsXP中的圓角、黑色邊框的風(fēng)格。它包括WinXPButtonST.h和WinXPButtonST.cpp兩個(gè)文件,而由于它是從CButtonST派生而來的,所以在引用它時(shí),也要一并引入CButtonST的文件。 使用: 1 .引入文件,添加文件 2 .導(dǎo)入文件后,在SdtAfx.h文件中添加 #include"WinXPButtonST.h" 3 .添加成員變量 CWinXPButtonSTm_btn2; 4 .假設(shè)

18、按鈕ID為IDC_BUTTON 添加Icon資源,ID設(shè)為IDI_ICON1 5 .在OnInitDialog函數(shù)中初始化按鈕m_btn2.SubclassDlgItem(IDC_BUTTON,this); m_btn2.SetIcon(IDI_ICON1);m_btn2.SetRounded(TRUE); 注意:但是它存在一個(gè)不足的地方,就是按鈕的圓角是畫出來的,按鈕的形狀仍然是原來的矩形。所以如果在有背景色的窗口中使用該按鈕的話就會顯得相當(dāng)?shù)K眼。 如圖所示,在黑色的背景色中顯示出難看的尖角: 解決的辦法是通過SetColor函數(shù)使得按鈕的底色與窗口的底色一致。 。二

19、、CShadeButtonST類 CShadeButtonST類是CButtonST的另一個(gè)派生類。它的特點(diǎn)是支持更為多樣化的背景,通過SetShade函數(shù)可以為按鈕設(shè)置9種不通的背景效果。它包括四個(gè)文件,它們分別是CeXDib.h、CeXDib.cpp、ShadeButtonST.h和ShadeButtonST.cpp。在引用它時(shí),同樣要一并引入CButtonST的文件。 使用: 1 .引入文件,添加文件 2 .導(dǎo)入文件后,在SdtAfx.h文件中添加 #include"ShadeButtonST.h" 3 .添加成員變量 CShadeButtonSTm_btn3; 4 .假

20、設(shè)按鈕ID為IDC_BUTTON3 添加Icon資源,ID設(shè)為IDI_ICON1 5 .在OnInitDialog函數(shù)中初始化按鈕 m_btn3.SubclassDlgItem(IDC_BUTTON3,this); m_btn3.SetIcon(IDI_ICON1); m_btn3.SetShade(CShadeButtonST二SHS_METAL); 下面給出各種背景效果和對應(yīng)的參數(shù)值。 15 CShadeButtonST SHS METAL SHS NOISE SHS VSHADE shS.hardbuiuiPSHS_VBUMPISHS_HSHADE SHSSOFTBUMPSHSHBUMPISHSDIAGSHADE?■ 附件名:CButtonST_Source.zip 附件描述: 附件大小48.1KB 下載次數(shù):62 附件名:CButtonST_demo.zip 附件描述: 附件大小276.0KB 下載次數(shù):50 大家可到www.sunxin.org網(wǎng)站,點(diǎn)擊進(jìn)入論壇,輸入BtnST搜索,即可下載附件代碼

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!