下載CButtonST示例源代碼
下載CButtonST類的源代碼
本篇主要包括了以下的效果:
1. 在按鈕上加入Icon,使Icon和文字同時顯示
2. 顯示平面按鈕
3. 使按鈕上的圖標可變
4. 設置按鈕在不同狀態下的底色和文字顏色
5. 設置圖標和文字的位置
6. 根據Icon的形狀設置按鈕的形狀
7. 添加Tooltips
以下是Basic Features的演示界面:

效果一:在按鈕上加入Icon,使Icon和文字同時顯示
假設按鈕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.SetFlat(FALSE);
注意:為達到最好效果,請根據Icon的大小調整按鈕的大小。
實例:演示程序中的Standar 按鈕。
效果二:顯示平面按鈕
只需要在效果一的基礎上把m_btn.SetFlat(FALSE);語句去掉。
效果三:使按鈕上的圖標可變
假設按鈕ID為IDC_BUTTON1
1. 添加成員變量
CButtonST m_btn;
2. 添加兩個Icon資源,ID設為IDI_ICON1和IDI_ICON2
IDI_ICON1是普通狀態的圖標,IDI_ICON2是按下時的圖標
3. 在OnInitDialog函數中初始化按鈕
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON2,IDI_ICON1);
實例:演示程序中的Halloween 按鈕。
效果四:設置按鈕在不同狀態下的底色和文字顏色
假設按鈕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.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208));
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208));
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
提示:SetColor函數和OffsetColor函數的第一個參數表示按鈕的各個狀態,前景色就是文字的顏色,它們的取值表示:
BTNST_COLOR_BK_IN //鼠標放在按鈕內時的背景色
BTNST_COLOR_FG_IN, //鼠標放在按鈕內時的前景色
BTNST_COLOR_BK_OUT, //普通狀態時的背景色
BTNST_COLOR_FG_OUT, //普通狀態時的前景色
BTNST_COLOR_BK_FOCUS, //按鈕被按下后的背景色
BTNST_COLOR_FG_FOCUS, //按鈕被按下后的前景色
實例:演示程序中的48×48 icon 按鈕、Zip按鈕等。
效果五:設置圖標和文字的位置
假設按鈕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);
提示:SetAlign函數的第一個參數表示位置信息,缺省情況下,文字在圖標右邊
ST_ALIGN_HORIZ // 文字在右
ST_ALIGN_VERT //文字在下
ST_ALIGN_HORIZ_RIGHT// 文字在左
實例:演示程序中的Search 按鈕。
效果六:根據Icon的形狀設置按鈕的形狀
假設按鈕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.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, RGB(208,208,208));
注意:為達到最好效果,請根據Icon的大小調整按鈕的大小。
并根據實際情況設置背景顏色。請事先將按鈕的文字去掉。
效果七:添加Tooltips
假設按鈕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.SetTooltipText(_T("This is a tooltip.\r\nMultiline!"));
posted on 2009-07-17 12:41
Bluesea 閱讀(2713)
評論(1) 編輯 收藏 引用 所屬分類:
MFC