CButtonST 使用方法

首先在你的工程中加入如下文件:

1.BtnST.h
2.BtnST.cpp

從v3.5版本開始,CButtonST支持使用BCMenu類創建菜單。爲了能夠使用BCMenu,你必須在 BtnST.h中加入下面二行:

1.#define BTNST_USE_BCMENU
2.#include "BCMenu.h"

當然,你也必須在你的工程文件中加入下面的頭文件:

1.BCMenu.h 
2.BCMenu.cpp

注意:當 BCMenu 使參數可用時,與用SetNenu的方法是不同的! 從v3.6版本開始, CbuttonST可以在特殊的按鈕播放聲音。爲了能夠讓它播放聲音要在 BtnST.h 中加入:

1.#define BTNST_USE_SOUND

這樣是爲了使用SetSound 方法。用靜態方法創建一個 CButtonST 用對話框編輯器中建一個標準的button,例如IDOK(你不需在自己動手創建),你可以用一個變量來創建這個button:

1.CButtonST m_btnOk;

現在你可以把這個 button 和 CbuttonST 連接在一起。在你的基於對話框的程序,在OnInitDialog:

01.// Call the base-class method
02.CDialog::OnInitDialog();
03.  
04.// Create the IDOK button
05.m_btnOk.SubclassDlgItem(IDOK, this);
06.Or in your DoDataExchange: 
07.// Call the base method
08.CDialog::DoDataExchange(pDX);
09.  
10.// Create the IDOK button
11.DDX_Control(pDX, IDOK, m_btnOk);

用動態方法創建一個CButtonST 在人的程序中,爲button創建一個變量。注意,這個變量的類型是指針:

1.CButtonST* m_pbtnOk;

現在創建button。在你的基於對話框的程序,在OnInitDialog:

01.// Call the base-class method
02.CDialog::OnInitDialog();
03.  
04.// Create the IDOK button
05.m_pbtnOk = new CButtonST;
06.m_pbtnOk->Create(_T("&Ok"), 
07.                    WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 
08.                    CRect(10, 10, 200, 100), this, IDOK);
09.// Set the same font of the application
10.m_pbtnOk->SetFont(GetFont());

記住銷燬這個指針,否則將會導致內存泄漏.這個也可以容易的實現,例如,在你的類中銷燬它:

1.if (m_pbtnOk) delete m_pbtnOk;

類的方法:

1.SetIcon(using multi-size resources)

給你的button指定圖標。任何本來就有的圖標或位圖將會被刪除。

參數:

01.// Parameters:
02.//     [IN]   nIconIn
03.//            圖標資源的ID,當你的鼠標放在按鈕上顯示該圖標.如果爲空,則將刪除任何圖標。
04.//     [IN]   nCxDesiredIn
05.//           指定加載圖標的寬度,像素
06.//     [IN]   nCyDesiredIn
07.//           指定加載圖標的高度,像素
08.//     [IN]   nIconOut
09.//            圖標資源的ID,當你的鼠標在不在按鈕內時,顯示圖標.可以爲空.
10.//            如果指定這個參數的值爲 BTNST_AUTO_GRAY (cast to int)第二個圖標將從 nIconIn 自動地創建,
11.//            同時改變灰度級.
12.//            如果指定這個參數的值爲 BTNST_AUTO_DARKER (cast to int)第二個圖標將從 nIconIn 自動地創建,
13.//            灰度級爲它的25%的.
14.//     [IN]   nCxDesiredOut
15.//           指定加載圖標的寬度,像素
16.//     [IN]   nCyDesiredOut
17.//           指定加載圖標的高度,像素
18.//
19.// 返回值:
20.//      BTNST_OK
21.//       函數成功執行
22.//      BTNST_INVALIDRESOURCE
23.//          加載指定資源失敗
24.//
25.DWORD SetIcon(int nIconIn, int nCxDesiredIn, int nCyDesiredIn, 
26.              int nIconOut = NULL, int nCxDesiredOut = 0, int nCyDesiredOut = 0)
27.  
28.  
29.SetIcon (using resources)

給你的button指定圖標. 任何本來就有的圖標或位圖將會被刪除.

01.// Parameters:
02.//     [IN]   nIconIn
03.//            圖標資源的ID,當你的鼠標放在按鈕上顯示該圖標.如果爲空,則將刪除任何圖標。
04.//     [IN]   nIconOut
05.//            圖標資源的ID,當你的鼠標在不在按鈕內時,顯示圖標.可以爲空.
06.//            如果指定這個參數的值爲 BTNST_AUTO_GRAY (cast to int)第二個圖標將從 nIconIn 自動地創建,
07.//            同時改變灰度級。如果指定這個參數的值爲 BTNST_AUTO_DARKER (cast to int)第二個圖標將從
08.//            nIconIn 自動地創建,灰度級爲它的25%的.
09.//返回值:
10.//      BTNST_OK
11.//        函數成功執行
12.//      BTNST_INVALIDRESOURCE
13.//          加載指定資源失敗
14.//
15.DWORD SetIcon(int nIconIn, int nIconOut = NULL)
16.  
17.  
18.SetIcon (using handles)

給你的button指定圖標. 任何本來就有的圖標或位圖將會被刪除.

01.// Parameters:
02.//     [IN]   hIconIn
03.//            圖標的句柄,鼠標放在按鈕上顯示該圖標.如果爲空,則將刪除任何圖標。.
04.//     [IN]   hIconOut
05.//            圖標的句柄,當你的鼠標在不在按鈕內時,顯示圖標.可以爲空.
06.//            如果指定這個參數的值爲 BTNST_AUTO_GRAY (cast to int)第二個圖標將從 nIconIn 自動地創建,
07.//            同時改變灰度級。如果指定這個參數的值爲 BTNST_AUTO_DARKER (cast to int)第二個圖標將從 
08.              nIconIn 自動地創建,灰度級爲它的25%的.
09.//返回值:
10.//      BTNST_OK
11.//     函數成功執行
12.//      BTNST_INVALIDRESOURCE
13.//          加載指定資源失敗
14.//
15.DWORD SetIcon(HICON hIconIn, HICON hIconOut = NULL)
16.  
17.  
18.SetBitmaps (using resources)

給你的button指定位圖. 任何本來就有的圖標或位圖將會被刪除.

01.// Parameters:
02.//     [IN]   nBitmapIn
03.//          位圖資源的ID,當你的鼠標放在按鈕上顯示該位圖.如果爲空,則將刪除任何位圖.
04.//     [IN]   crTransColorIn
05.//            顏色(inside nBitmapIn)將被用於透明色.
06.//     [IN]   nBitmapOut
07.//           位圖資源的ID,當你的鼠標在不在按鈕內時,顯示位圖.可以爲空
08.//     [IN]   crTransColorOut
09.//           顏色(inside nBitmapOut)將被用於透明色.
10.  
11.// 返回值:
12.//     BTNST_OK
13.//        函數成功執行
14.//     BTNST_INVALIDRESOURCE
15.//      加載指定資源失敗
16.//     BTNST_FAILEDMASK
17.//        創建mask bitmap失敗
18.//
19.DWORD SetBitmaps(int nBitmapIn, 
20.                 COLORREF crTransColorIn, 
21.                 int nBitmapOut = NULL, 
22.                 COLORREF crTransColorOut = 0)
23.  
24.SetBitmaps (using handles)

給你的button指定位圖. 任何本來就有的圖標或位圖將會被刪除.

01.// Parameters:
02.//     [IN]   hBitmapIn
03.//          位圖資源的句柄,當你的鼠標放在按鈕上顯示該位圖.如果爲空,則將刪除任何位圖.
04.//     [IN]   crTransColorIn
05.//            顏色(inside nBitmapIn)將被用於透明色.
06.//     [IN]   hBitmapOut
07.//            位圖資源的句柄,當你的鼠標在不在按鈕內時,顯示位圖.可以爲空
08.//     [IN]   crTransColorOut
09.//            顏色(inside nBitmapOut)將被用於透明色.
10.//
11.// 返回值:
12.//     BTNST_OK
13.//       函數成功執行
14.//     BTNST_INVALIDRESOURCE
15.//      加載指定資源失敗
16.//     BTNST_FAILEDMASK
17.//        創建mask bitmap失敗
18.//
19.DWORD SetBitmaps(HBITMAP hBitmapIn, 
20.        COLORREF crTransColorIn, 
21.        HBITMAP hBitmapOut = NULL, 
22.        COLORREF crTransColorOut = 0)
23.  
24.  
25.SetFlat
01.設置button爲一個標準平滑的樣式 // Parameters:
02.//     [IN]   bFlat
03.//            如果爲TRUE按鈕是平滑的樣式否則爲標準的樣式.缺省爲TRUE。
04.//     [IN]   bRepaint
05.//            如果爲TRUE 將被重置
06.//返回值:
07.//     BTNST_OK
08.//         函數成功執行
09.//
10.DWORD SetFlat(BOOL bFlat = TRUE, BOOL bRepaint = TRUE)
11.  
12.  
13.SetAlign
14.設置icon/bitmap各text 之間的綁定方式. 
15.// Parameters:
16.//     [IN]   byAlign
17.//            綁定方式.可以是下面的值:
18.//            ST_ALIGN_HORIZ          Icon/bitmap 在左, text 在右
19.//            ST_ALIGN_VERT           Icon/bitmap 在上, text  在下
20.//            ST_ALIGN_HORIZ_RIGHT    Icon/bitmap 在右, text 在左
21.//            ST_ALIGN_OVERLAP        Icon/bitmap 和 text 同一位置
22.//            缺省爲 ST_ALIGN_HORIZ.
23.//     [IN]   bRepaint
24.//           如果爲TRUE 將被重置
25.//
26.// 返回值:
27.//     BTNST_OK
28.//        函數成功執行
29.//     BTNST_INVALIDALIGN
30.//        綁定失敗.
31.//
32.DWORD SetAlign(BYTE byAlign, BOOL bRepaint = TRUE)
33.  
34.  
35.SetTextAlign

在text內設置不同的方式

01.// Parameters:
02.//     [IN]   byTextAlign
03.//            綁定方式.可以是下面的值:
04.//            ST_TEXTALIGN_CENTER_VCENTER       水平,垂直,中心
05.//            ST_TEXTALIGN_LEFT_VCENTER         靠左,垂直,中心
06.  
07.//            缺省爲ST_TEXTALIGN_CENTER_VCENTER 
08.//            ST_TEXTALIGN_RIGHT_VCENTER        靠右,垂直,中心
09.//            但在checkboxes 或 radiobuttons 中缺省爲ST_TEXTALIGN_LEFT_VCENTER.
10.//     [IN]   bRepaint
11.//            如果爲TRUE 將被重置
12.//
13.// 返回值:
14.//     BTNST_OK
15.//        函數成功執行
16.//     BTNST_INVALIDALIGN
17.//        綁定失敗.
18.//
19.DWORD SetTextAlign(BYTE byTextAlign, BOOL bRepaint = TRUE)
20.  
21.  
22.SetPressedStyle

設置下壓方式.

01.// Parameters:
02.//     [IN]   byStyle
03.//           下壓方式,可以是下面的值:
04.//            BTNST_PRESSED_LEFTRIGHT    從左到右         BTNST_PRESSED_TOPBOTTOM    從上到下
05.//            缺省爲 BTNST_PRESSED_LEFTRIGHT.
06.//     [IN]   bRepaint
07.//            如果爲TRUE 將被重置
08.//
09.//返回值:
10.//     BTNST_OK
11.//       函數成功執行
12.//     BTNST_INVALIDPRESSEDSTYLE
13.//        下壓方式不支持.
14.//
15.DWORD SetPressedStyle(BYTE byStyle, BOOL bRepaint = TRUE)
16.  
17.  
18.SetCheck

設置checkbox狀態.

01.button 必須是一個 checkbox. 
02.// Parameters:
03.//     [IN]   nCheck
04.//            1 表示選中.
05.//            0 表示沒有選中
06.//     [IN]   bRepaint
07.//        如果爲TRUE 將被重置
08.//
09.// 返回值:
10.//     BTNST_OK
11.//       函數成功執行.
12.//
13.DWORD SetCheck(int nCheck, BOOL bRepaint = TRUE)
14.  
15.  
16.GetCheck

返回當前checkbox狀態. button 必須是一個 checkbox.

01.//返回值:
02.//     當前checkbox狀態.
03.//        1 被選中
04.//        0 沒有被選中或button不是一個checkbox.
05.//
06.int GetCheck()
07.  
08.  
09.SetDefaultColors

設置缺省顏色值

01.// Parameters:
02.//     [IN]   bRepaint
03.//            如果爲TRUE 將被重置
04.//
05.//返回值:
06.//     BTNST_OK
07.//        函數成功執行
08.//
09.DWORD SetDefaultColors(BOOL bRepaint = TRUE)
10.  
11.  
12.SetColor

設置特殊狀態下的顏色值

01.// Parameters:
02.//     [IN]   byColorIndex
03.//            要設置的顏色值的索引,可以是下面的值:
04.//            BTNST_COLOR_BK_IN       鼠標滑過時背景色
05.//            BTNST_COLOR_FG_IN       鼠標滑過時文本色       
06.//            BTNST_COLOR_BK_OUT      鼠標不在按鈕內的背景色
07.//            BTNST_COLOR_FG_OUT      鼠標不在按鈕內的背景色
08.//            BTNST_COLOR_BK_FOCUS    焦點在按鈕上,背景色
09.//            BTNST_COLOR_FG_FOCUS    焦點在按鈕上,文本色
10.//     [IN]   crColor
11.//            新顏色
12.//     [IN]   bRepaint
13.//            如果爲TRUE 將被重置
14.//
15.//返回值:
16.//     BTNST_OK
17.//        函數成功執行.
18.//     BTNST_INVALIDINDEX
19.//        錯誤的植.
20.//
21.DWORD SetColor(BYTE byColorIndex, COLORREF crColor, BOOL bRepaint = TRUE)
22.  
23.  
24.GetColor

返回特殊狀態下的顏色值.

01.// Parameters:
02.//     [IN]   byColorIndex
03.//            顏色值索引
04.//     [OUT]  crpColor
05.//            指向想要查詢的COLORREF.
06.//
07.//返回值:
08.//     BTNST_OK
09.//        函數成功執行.
10.//     BTNST_INVALIDINDEX
11.//        錯誤的植.
12.//
13.DWORD GetColor(BYTE byColorIndex, COLORREF* crpColor)
14.  
15.  
16.OffsetColor

該函數用於設置RGB值。

01.// Parameters:
02.//     [IN]   byColorIndex
03.//            設置的顏色值的索引.
04.//            看SetColor函數中顏色列表.
05.//     [IN]   shOffsetColor
06.//             -255到255之間
07.//     [IN]   bRepaint
08.//            如果爲TRUE 將被重置
09.//
10.// 返回值:
11.//     BTNST_OK
12.//        函數成功執行.
13.//     BTNST_INVALIDINDEX
14.//        錯誤的植.
15.//     BTNST_BADPARAM
16.//       超出範圍
17.//
18.DWORD OffsetColor(BYTE byColorIndex, short shOffset, BOOL bRepaint
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章