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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值