当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 在你的程序中如何使用CButtonST类

VC++
在类VC的界面实现中加入目录树
软件换肤技术在 BCB 中的实现
利用非模窗口生成MDI介面
报表输出轻松搞定
Windows 中不规则窗体的编程实现
解说Win32的窗口子类化
使用测试优先方法开发用户界面
一个简单的登录对话框的实现
一个简单的日记本程序
从资源中加载皮肤
一个在RichEdit中添加表情图象的类
ActiveSkin 4.3 软件换肤在VC中的实现
一种另类“关于(About)”对话框的动态显示方法
对话框打印预览及打印
关于如何换肤、子类化的解决方案
制作 MSN、QQ 的消息提示窗口
如何对 BCGControlBarPro 进行换肤
定制个性化的对话框窗口类
改变窗口中的光标形状
更新MFC中的视图,跟踪.NET Framework中的事件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 73 ::
收藏到网摘: n/a

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

原文:davide calabro
翻译:xinying_ge

原文出处:CButtonST v4.1

下载源代码

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

BtnST.hBtnST.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 methodCDialog::OnInitDialog();// Create the IDOK buttonm_btnOk.SubclassDlgItem(IDOK, this);Or in your DoDataExchange: // Call the base methodCDialog::DoDataExchange(pDX);// Create the IDOK buttonDDX_Control(pDX, IDOK, m_btnOk);
  用动态方法创建一个CButtonST在人的程序中,为button创建一个变量。注意,这个变量的类型是指针:
CButtonST* m_pbtnOk;
现在创建button。在你的基于对话框的程序,在OnInitDialog:
// Call the base-class methodCDialog::OnInitDialog();// Create the IDOK buttonm_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 applicationm_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// 图标的句