上一篇文章《
CButtonST使用技巧(一)》介紹了CButtonST使用的7種技巧,本篇主要包括了以下的效果:
1.
改變鼠標進入按鈕時的形狀(超鏈接效果)2.
菜單按鈕3.
位圖按鈕4.
按鈕焦點5.
CheckBox按鈕6.
透明按鈕(按鈕背景和窗口背景一樣)7.
特殊的PictureBox
效果一:改變鼠標進入按鈕時的形狀(超鏈接效果)假設按鈕ID為IDC_BUTTON1
1. 添加成員變量
CButtonST m_btn;
2. 添加Icon資源,設其ID設為IDI_ICON1
3. 在OnInitDialog函數中初始化按鈕
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
m_btn.SetURL("www.scut.edu.cn");
m_btn.SetTooltipText("www.scut.edu.cn");
m_btn.SetBtnCursor(IDC_CURSOR1);
效果二:菜單按鈕假設按鈕ID為IDC_BUTTON1
1.添加成員變量
CButtonST m_btn;
2. 添加Icon資源,設其ID設為IDI_ICON1
3. 添加Menu,ID設為IDR_MENU
4. 在OnInitDialog函數中初始化按鈕
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
m_btn.SetMenu(IDR_MENU, m_hWnd);
注意:菜單的效果類似與右鍵菜單,所有在設置菜單選項時只設置一列就夠了。另外菜單的寬度與菜單的文字長度有關,可以用空格占位的辦法以達到最佳效果。
在菜單中引入位圖的方法1.添加ToolBar,依次使用Menu菜單項ID作為ToolBar按鈕的ID。
2.ToolBar上的按鈕圖標將顯示在相應的菜單項中。
將上面代碼中的m_btn.SetMenu(IDR_MENU, m_hWnd);
改為m_btn.SetMenu(IDR_MENU, m_hWnd, TRUE, IDR_TOOLBAR);
IDR_TOOLBAR為相應ToolBar的ID。
效果三:位圖按鈕假設按鈕ID為IDC_BUTTON1
1.添加成員變量
CButtonST m_btn;
2.添加位圖資源,ID設為IDB_BITMAP1
3.在OnInitDialog函數中初始化按鈕
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函數會將圖片中顏色值為RGB(0,0,0)的點設為透明。
效果四:按鈕焦點假設按鈕ID為IDC_BUTTON1
1.添加成員變量
CButtonST m_btn;
2. 添加Icon資源,設其ID設為IDI_ICON1
3. 在OnInitDialog函數中初始化按鈕
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetAlign(CButtonST::ST_ALIGN_VERT);
m_btn.DrawFlatFocus(TRUE);
效果五:CheckBox按鈕假設按鈕ID為IDC_BUTTON1
1.添加成員變量
CButtonST m_btn;
2. 添加Icon資源,ID設為IDI_ICON1和IDI_ICON2
3.在OnInitDialog函數中初始化按鈕
m_btn.SubclassDlgItem(IDC_CHECK1,this);
m_btn.SetIcon(IDI_ICON1,IDI_ICON2);
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
提示:IDI_ICON1為選中時候顯示的圖標
IDI_ICON2為為選中時候的圖標
效果六:透明按鈕假設按鈕ID為IDC_BUTTON1
1.添加成員變量
CButtonST m_btn;
2. 添加Icon資源,ID設為IDI_ICON1
3.在OnInitDialog函數中初始化按鈕
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.DrawTransparent(TRUE);
效果七:特殊的PictureBox利用CButtonST的特殊顯示風格,完全可以把它當作一個PictureBox控件使用。這時一般會把按鈕的屬性設置為disable。
實例:演示程序的About頁中使用了CButtonST來代替PictureBox。
posted on 2009-07-17 12:42
Bluesea 閱讀(1731)
評論(0) 編輯 收藏 引用 所屬分類:
MFC