CButtonST 使用方法

来源:互联网 发布:电线传输网络信号原理 编辑:程序博客网 时间:2024/05/01 11:12

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

view source
print?
1.BtnST.h
2.BtnST.cpp

从v3.5版本开始,CButtonST支持使用BCMenu类创建菜单。为了能够使用BCMenu,你必须在 BtnST.h中加入下面二行:

view source
print?
1.#define BTNST_USE_BCMENU
2.#include "BCMenu.h"

当然,你也必须在你的工程文件中加入下面的头文件:

view source
print?
1.BCMenu.h 
2.BCMenu.cpp

注意:当 BCMenu 使参数可用时,与用SetNenu的方法是不同的! 从v3.6版本开始, CbuttonST可以在特殊的按钮播放声音。为了能够让它播放声音要在 BtnST.h 中加入:

view source
print?
1.#define BTNST_USE_SOUND

这样是为了使用SetSound 方法。用静态方法创建一个 CButtonST 用对话框编辑器中建一个标准的button,例如IDOK(你不需在自己动手创建),你可以用一个变量来创建这个button:

view source
print?
1.CButtonST m_btnOk;

现在你可以把这个 button 和 CbuttonST 连接在一起。在你的基于对话框的程序,在OnInitDialog:

view source
print?
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创建一个变量。注意,这个变量的类型是指针:

view source
print?
1.CButtonST* m_pbtnOk;

现在创建button。在你的基于对话框的程序,在OnInitDialog:

view source
print?
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());

记住销毁这个指针,否则将会导致内存泄漏.这个也可以容易的实现,例如,在你的类中销毁它:

view source
print?
1.if(m_pbtnOk) delete m_pbtnOk;

类的方法:

view source
print?
1.SetIcon(usingmulti-size resources)

给你的button指定图标。任何本来就有的图标或位图将会被删除。

参数:

view source
print?
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.DWORDSetIcon(int nIconIn, int nCxDesiredIn,int nCyDesiredIn, 
26.              intnIconOut = NULL, int nCxDesiredOut = 0, int nCyDesiredOut = 0)
27.  
28.  
29.SetIcon (usingresources)

给你的button指定图标. 任何本来就有的图标或位图将会被删除.

view source
print?
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.DWORDSetIcon(int nIconIn, int nIconOut = NULL)
16.  
17.  
18.SetIcon (usinghandles)

给你的button指定图标. 任何本来就有的图标或位图将会被删除.

view source
print?
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.DWORDSetIcon(HICON hIconIn, HICON hIconOut = NULL)
16.  
17.  
18.SetBitmaps (usingresources)

给你的button指定位图. 任何本来就有的图标或位图将会被删除.

view source
print?
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.DWORDSetBitmaps(int nBitmapIn, 
20.                 COLORREFcrTransColorIn, 
21.                 intnBitmapOut = NULL, 
22.                 COLORREFcrTransColorOut = 0)
23.  
24.SetBitmaps (usinghandles)

给你的button指定位图. 任何本来就有的图标或位图将会被删除.

view source
print?
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.DWORDSetBitmaps(HBITMAP hBitmapIn, 
20.        COLORREFcrTransColorIn, 
21.        HBITMAPhBitmapOut = NULL, 
22.        COLORREFcrTransColorOut = 0)
23.  
24.  
25.SetFlat
view source
print?
01.设置button为一个标准平滑的样式// Parameters:
02.//     [IN]   bFlat
03.//            如果为TRUE按钮是平滑的样式否则为标准的样式.缺省为TRUE。
04.//     [IN]   bRepaint
05.//            如果为TRUE 将被重置
06.//返回值:
07.//     BTNST_OK
08.//         函数成功执行
09.//
10.DWORDSetFlat(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.DWORDSetAlign(BYTE byAlign, BOOL bRepaint = TRUE)
33.  
34.  
35.SetTextAlign

在text内设置不同的方式

view source
print?
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.DWORDSetTextAlign(BYTE byTextAlign, BOOL bRepaint = TRUE)
20.  
21.  
22.SetPressedStyle

设置下压方式.

view source
print?
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.DWORDSetPressedStyle(BYTE byStyle, BOOL bRepaint = TRUE)
16.  
17.  
18.SetCheck

设置checkbox状态.

view source
print?
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.DWORDSetCheck(int nCheck, BOOL bRepaint = TRUE)
14.  
15.  
16.GetCheck

返回当前checkbox状态. button 必须是一个 checkbox.

view source
print?
01.//返回值:
02.//     当前checkbox状态.
03.//        1 被选中
04.//        0 没有被选中或button不是一个checkbox.
05.//
06.intGetCheck()
07.  
08.  
09.SetDefaultColors

设置缺省颜色值

view source
print?
01.// Parameters:
02.//     [IN]   bRepaint
03.//            如果为TRUE 将被重置
04.//
05.//返回值:
06.//     BTNST_OK
07.//        函数成功执行
08.//
09.DWORDSetDefaultColors(BOOLbRepaint = TRUE)
10.  
11.  
12.SetColor

设置特殊状态下的颜色值

view source
print?
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.DWORDSetColor(BYTE byColorIndex, COLORREF crColor, BOOL bRepaint = TRUE)
22.  
23.  
24.GetColor

返回特殊状态下的颜色值.

view source
print?
01.// Parameters:
02.//     [IN]   byColorIndex
03.//            颜色值索引
04.//     [OUT]  crpColor
05.//            指向想要查询的COLORREF.
06.//
07.//返回值:
08.//     BTNST_OK
09.//        函数成功执行.
10.//     BTNST_INVALIDINDEX
11.//        错误的植.
12.//
13.DWORDGetColor(BYTE byColorIndex, COLORREF* crpColor)
14.  
15.  
16.OffsetColor

该函数用于设置RGB值。

view source
print?
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.DWORDOffsetColor(BYTE byColorIndex, short shOffset,BOOL bRepaint