王朝网络
分享
 
 
 

在你的程序中如何使用CButtonST类

王朝vc·作者佚名  2006-01-17
宽屏版  字体: |||超大  

在你的程序中如何使用CButtonST类

原文:davide calabro

翻译:xinying_ge

原文出处:CButtonST v4.1

下载源代码

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

BtnST.h

BtnST.cpp

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

#define BTNST_USE_BCMENU

#include "BCMenu.h"

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

BCMenu.h

BCMenu.cpp

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

BtnST.h 中加入:

#define BTNST_USE_SOUND

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

CButtonST m_btnOk;

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

// Call the base-class method

CDialog::OnInitDialog();

// Create the IDOK button

m_btnOk.SubclassDlgItem(IDOK, this);

Or in your DoDataExchange:

// Call the base method

CDialog::DoDataExchange(pDX);

// Create the IDOK button

DDX_Control(pDX, IDOK, m_btnOk);

用动态方法创建一个CButtonST

在人的程序中,为button创建一个变量。注意,这个变量的类型是指针:

CButtonST* m_pbtnOk;

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

// Call the base-class method

CDialog::OnInitDialog();

// Create the IDOK button

m_pbtnOk = new CButtonST;

m_pbtnOk-Create(_T("&Ok"),

WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP,

CRect(10, 10, 200, 100), this, IDOK);

// Set the same font of the application

m_pbtnOk-SetFont(GetFont());

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

类的方法:

SetIcon(using multi-size resources)

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

参数:

// Parameters:

// [IN] nIconIn

// 图标资源的ID,当你的鼠标放在按钮上显示该图标.如果为空,则将删除任何图标。

// [IN] nCxDesiredIn

// 指定加载图标的宽度,像素

// [IN] nCyDesiredIn

// 指定加载图标的高度,像素

// [IN] nIconOut

// 图标资源的ID,当你的鼠标在不在按钮内时,显示图标.可以为空.

// 如果指定这个参数的值为 BTNST_AUTO_GRAY (cast to int)第二个图标将从 nIconIn 自动地创建,

// 同时改变灰度级.

// 如果指定这个参数的值为 BTNST_AUTO_DARKER (cast to int)第二个图标将从 nIconIn 自动地创建,

// 灰度级为它的25%的.

// [IN] nCxDesiredOut

// 指定加载图标的宽度,像素

// [IN] nCyDesiredOut

// 指定加载图标的高度,像素

//

// 返回值:

// BTNST_OK

// 函数成功执行

// BTNST_INVALIDRESOURCE

// 加载指定资源失败

//

DWORD SetIcon(int nIconIn, int nCxDesiredIn, int nCyDesiredIn,

int nIconOut = NULL, int nCxDesiredOut = 0, int nCyDesiredOut = 0)

SetIcon (using resources)

给你的button指定图标.

任何本来就有的图标或位图将会被删除.

// Parameters:

// [IN] nIconIn

// 图标资源的ID,当你的鼠标放在按钮上显示该图标.如果为空,则将删除任何图标。

// [IN] nIconOut

// 图标资源的ID,当你的鼠标在不在按钮内时,显示图标.可以为空.

// 如果指定这个参数的值为 BTNST_AUTO_GRAY (cast to int)第二个图标将从 nIconIn 自动地创建,

// 同时改变灰度级。如果指定这个参数的值为 BTNST_AUTO_DARKER (cast to int)第二个图标将从

// nIconIn 自动地创建,灰度级为它的25%的.

//返回值:

// BTNST_OK

// 函数成功执行

// BTNST_INVALIDRESOURCE

// 加载指定资源失败

//

DWORD SetIcon(int nIconIn, int nIconOut = NULL)

SetIcon (using handles)

给你的button指定图标.

任何本来就有的图标或位图将会被删除.

// Parameters:

// [IN] hIconIn

// 图标的句柄,鼠标放在按钮上显示该图标.如果为空,则将删除任何图标。.

// [IN] hIconOut

// 图标的句柄,当你的鼠标在不在按钮内时,显示图标.可以为空.

// 如果指定这个参数的值为 BTNST_AUTO_GRAY (cast to int)第二个图标将从 nIconIn 自动地创建,

// 同时改变灰度级。如果指定这个参数的值为 BTNST_AUTO_DARKER (cast to int)第二个图标将从

nIconIn 自动地创建,灰度级为它的25%的.

//返回值:

// BTNST_OK

// 函数成功执行

// BTNST_INVALIDRESOURCE

// 加载指定资源失败

//

DWORD SetIcon(HICON hIconIn, HICON hIconOut = NULL)

SetBitmaps (using resources)

给你的button指定位图.

任何本来就有的图标或位图将会被删除.

// Parameters:

// [IN] nBitmapIn

// 位图资源的ID,当你的鼠标放在按钮上显示该位图.如果为空,则将删除任何位图.

// [IN] crTransColorIn

// 颜色(inside nBitmapIn)将被用于透明色.

// [IN] nBitmapOut

// 位图资源的ID,当你的鼠标在不在按钮内时,显示位图.可以为空

// [IN] crTransColorOut

// 颜色(inside nBitmapOut)将被用于透明色.

// 返回值:

// BTNST_OK

// 函数成功执行

// BTNST_INVALIDRESOURCE

// 加载指定资源失败

// BTNST_FAILEDMASK

// 创建mask bitmap失败

//

DWORD SetBitmaps(int nBitmapIn,

COLORREF crTransColorIn,

int nBitmapOut = NULL,

COLORREF crTransColorOut = 0)

SetBitmaps (using handles)

给你的button指定位图.

任何本来就有的图标或位图将会被删除.

// Parameters:

// [IN] hBitmapIn

// 位图资源的句柄,当你的鼠标放在按钮上显示该位图.如果为空,则将删除任何位图.

// [IN] crTransColorIn

// 颜色(inside nBitmapIn)将被用于透明色.

// [IN] hBitmapOut

// 位图资源的句柄,当你的鼠标在不在按钮内时,显示位图.可以为空

// [IN] crTransColorOut

// 颜色(inside nBitmapOut)将被用于透明色.

//

// 返回值:

// BTNST_OK

// 函数成功执行

// BTNST_INVALIDRESOURCE

// 加载指定资源失败

// BTNST_FAILEDMASK

// 创建mask bitmap失败

//

DWORD SetBitmaps(HBITMAP hBitmapIn,

COLORREF crTransColorIn,

HBITMAP hBitmapOut = NULL,

COLORREF crTransColorOut = 0)

SetFlat

设置button为一个标准平滑的样式

// Parameters:

// [IN] bFlat

// 如果为TRUE按钮是平滑的样式否则为标准的样式.缺省为TRUE。

// [IN] bRepaint

// 如果为TRUE 将被重置

//返回值:

// BTNST_OK

// 函数成功执行

//

DWORD SetFlat(BOOL bFlat = TRUE, BOOL bRepaint = TRUE)

SetAlign

设置icon/bitmap各text 之间的绑定方式.

// Parameters:

// [IN] byAlign

// 绑定方式.可以是下面的值:

// ST_ALIGN_HORIZ Icon/bitmap 在左, text 在右

// ST_ALIGN_VERT Icon/bitmap 在上, text 在下

// ST_ALIGN_HORIZ_RIGHT Icon/bitmap 在右, text 在左

// ST_ALIGN_OVERLAP Icon/bitmap 和 text 同一位置

// 缺省为 ST_ALIGN_HORIZ.

// [IN] bRepaint

// 如果为TRUE 将被重置

//

// 返回值:

// BTNST_OK

// 函数成功执行

// BTNST_INVALIDALIGN

// 绑定失败.

//

DWORD SetAlign(BYTE byAlign, BOOL bRepaint = TRUE)

SetTextAlign

在text内设置不同的方式

// Parameters:

// [IN] byTextAlign

// 绑定方式.可以是下面的值:

// ST_TEXTALIGN_CENTER_VCENTER 水平,垂直,中心

// ST_TEXTALIGN_LEFT_VCENTER 靠左,垂直,中心

// 缺省为ST_TEXTALIGN_CENTER_VCENTER

// ST_TEXTALIGN_RIGHT_VCENTER 靠右,垂直,中心

// 但在checkboxes 或 radiobuttons 中缺省为ST_TEXTALIGN_LEFT_VCENTER.

// [IN] bRepaint

// 如果为TRUE 将被重置

//

// 返回值:

// BTNST_OK

// 函数成功执行

// BTNST_INVALIDALIGN

// 绑定失败.

//

DWORD SetTextAlign(BYTE byTextAlign, BOOL bRepaint = TRUE)

SetPressedStyle

设置下压方式.

// Parameters:

// [IN] byStyle

// 下压方式,可以是下面的值:

// BTNST_PRESSED_LEFTRIGHT 从左到右 BTNST_PRESSED_TOPBOTTOM 从上到下

// 缺省为 BTNST_PRESSED_LEFTRIGHT.

// [IN] bRepaint

// 如果为TRUE 将被重置

//

//返回值:

// BTNST_OK

// 函数成功执行

// BTNST_INVALIDPRESSEDSTYLE

// 下压方式不支持.

//

DWORD SetPressedStyle(BYTE byStyle, BOOL bRepaint = TRUE)

SetCheck

设置checkbox状态.

button 必须是一个 checkbox.

// Parameters:

// [IN] nCheck

// 1 表示选中.

// 0 表示没有选中

// [IN] bRepaint

// 如果为TRUE 将被重置

//

// 返回值:

// BTNST_OK

// 函数成功执行.

//

DWORD SetCheck(int nCheck, BOOL bRepaint = TRUE)

GetCheck

返回当前checkbox状态.

button 必须是一个 checkbox.

//返回值:

// 当前checkbox状态.

// 1 被选中

// 0 没有被选中或button不是一个checkbox.

//

int GetCheck()

SetDefaultColors

设置缺省颜色值

// Parameters:

// [IN] bRepaint

// 如果为TRUE 将被重置

//

//返回值:

// BTNST_OK

// 函数成功执行

//

DWORD SetDefaultColors(BOOL bRepaint = TRUE)

SetColor

设置特殊状态下的颜色值

// Parameters:

// [IN] byColorIndex

// 要设置的颜色值的索引,可以是下面的值:

// BTNST_COLOR_BK_IN 鼠标滑过时背景色

// BTNST_COLOR_FG_IN 鼠标滑过时文本色

// BTNST_COLOR_BK_OUT 鼠标不在按钮内的背景色

// BTNST_COLOR_FG_OUT 鼠标不在按钮内的背景色

// BTNST_COLOR_BK_FOCUS 焦点在按钮上,背景色

// BTNST_COLOR_FG_FOCUS 焦点在按钮上,文本色

// [IN] crColor

// 新颜色

// [IN] bRepaint

// 如果为TRUE 将被重置

//

//返回值:

// BTNST_OK

// 函数成功执行.

// BTNST_INVALIDINDEX

// 错误的植.

//

DWORD SetColor(BYTE byColorIndex, COLORREF crColor, BOOL bRepaint = TRUE)

GetColor

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

// Parameters:

// [IN] byColorIndex

// 颜色值索引

// [OUT] crpColor

// 指向想要查询的COLORREF.

//

//返回值:

// BTNST_OK

// 函数成功执行.

// BTNST_INVALIDINDEX

// 错误的植.

//

DWORD GetColor(BYTE byColorIndex, COLORREF* crpColor)

OffsetColor

该函数用于设置RGB值。

// Parameters:

// [IN] byColorIndex

// 设置的颜色值的索引.

// 看SetColor函数中颜色列表.

// [IN] shOffsetColor

// -255到255之间

// [IN] bRepaint

// 如果为TRUE 将被重置

//

// 返回值:

// BTNST_OK

// 函数成功执行.

// BTNST_INVALIDINDEX

// 错误的植.

// BTNST_BADPARAM

// 超出范围

//

DWORD OffsetColor(BYTE byColorIndex, short shOffset, BOOL bRepaint = TRUE)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有