MFC CButtonST的用法汇总

基于MFCCButtonST按钮增强控件实战应用 CButtonST 没有颠覆 MFC,也没有抛弃传统。它所做的,是在不变的框架下,注入现代化的灵魂。它告诉我们:真正的技术进步,不一定是炫目的新语言或新平台,也可以是对旧体系的深刻理解和优雅改造。下次当你面对那个“丑丑的”默认按钮时,不妨试试 CButtonST。也许只是一次小小的替换,就能让你的界面焕然一新,让用户嘴角微微上扬 😊本文还有配套的精品资源,点击获取。 阅读详情
效果一:在按钮上加入Icon,使Icon和文字同时显示 

假设按钮ID为IDC_BUTTON1
1. 添加成员变量
CButtonST m_btn;
2. 添加Icon资源,设其ID设为IDI_ICON1
3. 在OnInitDialog函数中初始化按钮 
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetFlat(FALSE);
注意:为达到最好效果,请根据Icon的大小调整按钮的大小。

 效果三:使按钮上的图标可变
假设按钮ID为IDC_BUTTON1
1. 添加成员变量 
2. 添加两个Icon资源,ID设为IDI_ICON1IDI_ICON2
IDI_ICON1是普通状态的图标,IDI_ICON2是按下时的图标
3. 在OnInitDialog函数中初始化按钮 
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON2,IDI_ICON1);

 效果四:设置按钮在不同状态下的底色和文字颜色 
假设按钮ID为IDC_BUTTON1
1. 添加成员变量 
2. 添加Icon资源,设其ID设为IDI_ICON1
3. 在OnInitDialog函数中初始化按钮 
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208));
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208));
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
提示:SetColor函数和OffsetColor函数的第一个参数表示按钮的各个状态,前景色就是文字的颜色,它们的取值表示: 
BTNST_COLOR_BK_IN //鼠标放在按钮内时的背景色
BTNST_COLOR_FG_IN, //鼠标放在按钮内时的前景色
BTNST_COLOR_BK_OUT, //普通状态时的背景色
BTNST_COLOR_FG_OUT, //普通状态时的前景色
BTNST_COLOR_BK_FOCUS, //按钮被按下后的背景色
BTNST_COLOR_FG_FOCUS, //按钮被按下后的前景色实例:演示程序中的48×48 icon 按钮、Zip按钮等。

 效果五:设置图标和文字的位置

假设按钮ID为IDC_BUTTON1
1.添加成员变量 
CButtonST m_btn;
2.添加Icon资源,ID设为IDI_ICON1
3.在OnInitDialog函数中初始化按钮 
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetAlign(CButtonST::ST_ALIGN_VERT);
提示:SetAlign函数的第一个参数表示位置信息,缺省情况下,文字在图标右边 
ST_ALIGN_HORIZ // 文字在右
ST_ALIGN_VERT //文字在下
ST_ALIGN_HORIZ_RIGHT// 文字在左

 效果六:根据Icon的形状设置按钮的形状

假设按钮ID为IDC_BUTTON1
1.添加成员变量 
2.添加Icon资源,设其ID设为IDI_ICON1
3.在OnInitDialog函数中初始化按钮 
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.DrawBorder(FALSE);
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208));
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_IN, RGB(208,208,208));
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208));
注意:为达到最好效果,请根据Icon的大小调整按钮的大小。
并根据实际情况设置背景颜色。请事先将按钮的文字去掉。

 效果七:添加Tooltips

假设按钮ID为IDC_BUTTON1
1.添加成员变量 
CButtonST m_btn;
2.添加Icon资源,设其ID设为IDI_ICON1
3. 在OnInitDialog函数中初始化按钮 
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetTooltipText(_T("This is a tooltip.\r\nMultiline!"));

效果一:改变鼠标进入按钮时的形状(超链接效果)
假设按钮ID为IDC_BUTTON11. 添加成员变量CButtonST m_btn;
2. 添加Icon资源,设其ID设为IDI_ICON13. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
m_btn.SetURL("www.scut.edu.cn");
m_btn.SetTooltipText("www.scut.edu.cn");
m_btn.SetBtnCursor(IDC_CURSOR1);
 效果二:菜单按钮假设按钮ID为IDC_BUTTON11
添加成员变量CButtonST m_btn;
2. 添加Icon资源,设其ID设为IDI_ICON1
3. 添加Menu,ID设为IDR_MENU
4. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
m_btn.SetMenu(IDR_MENU, m_hWnd);

注意:菜单的效果类似与右键菜单,所有在设置菜单选项时只设置一列就够了。另外菜单的宽度与菜单的文字长度有关,可以用空格占位的办法以达到最佳效果。

在菜单中引入位图的方法
1.添加ToolBar,依次使用Menu菜单项ID作为ToolBar按钮的ID。
2.ToolBar上的按钮图标将显示在相应的菜单项中。将上面代码中的
m_btn.SetMenu(IDR_MENU, m_hWnd);
改为
m_btn.SetMenu(IDR_MENU, m_hWnd, TRUE, IDR_TOOLBAR);

IDR_TOOLBAR为相应ToolBar的ID。 

效果三:位图按钮假设按钮ID为IDC_BUTTON1
1.添加成员变量CButtonST m_btn;
2.添加位图资源,ID设为IDB_BITMAP13.
在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);	
m_btn.SetBitmaps(IDB_BITMAP1,RGB(0,0,0));
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);

提示: 上面的SetBitmaps函数会将图片中颜色值为RGB(0,0,0)的点设为透明。 

效果四:按钮焦点假设按钮ID为IDC_BUTTON1
1.添加成员变量CButtonST m_btn;
2. 添加Icon资源,设其ID设为IDI_ICON1
3. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetAlign(CButtonST::ST_ALIGN_VERT);
m_btn.DrawFlatFocus(TRUE); 
效果五:CheckBox按钮假设按钮ID为IDC_BUTTON1
1.添加成员变量CButtonST m_btn;
2. 添加Icon资源,ID设为IDI_ICON1和IDI_ICON2
3.在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_CHECK1,this);
m_btn.SetIcon(IDI_ICON1,IDI_ICON2);
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);

提示:IDI_ICON1为选中时候显示的图标IDI_ICON2为为选中时候的图标 

效果六:透明按钮假设按钮ID为IDC_BUTTON1
1.添加成员变量CButtonST m_btn;
2. 添加Icon资源,ID设为IDI_ICON1
3.在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.DrawTransparent(TRUE); 

能让一个按钮能够显示出程序员的努力又不落矫情的办法:1、加图标和选中图标;2、修改选中后的背景色,尽量使未选中的背景色与程序主体相一致,如果未有好办法,就不设置;3、flat效果;4、顶多再设置一下选中后的字体的颜色。
CButtonST类在MFC中的高级使用技巧 CButtonST类作为一个图形界面元素,其事件处理机制是响应用户交互的核心。事件机制允许开发者为按钮定义不同的行为,比如点击、鼠标悬停等,从而实现丰富的用户界面动态效果。CButtonST类通过信号与槽机制进行事件的绑定和处理。开发者需要在类的初始化过程中,或在需要响应事件的生命周期内,指定事件与相应的处理函数(槽)之间的关联。// 示例代码展示如何连接信号与槽在上面的代码中,connect函数用于建立一个信号(clicked)与槽()之间的连接。当按钮被点击时,clicked。 阅读详情

相关推荐

CButtonST类实例源码详解与MFC按钮美化实战

Windows 中每个窗口(包括按钮)都有一个“窗口过程函数”(Window Procedure),负责处理所有消息(比如点击、移动、重绘)。这个函数由系统或 MFC 默认提供。子类化的本质是:我们用自己的函数替换掉原来的窗口过程函数,这样就能拦截并处理原本无法触及的消息。CButtonST 就是靠这一招“偷天换日”,实现了对按钮命运的掌控 🔮。// 把 IDC_BUTTON1 这个普通按钮,“升级”成 CButtonST就这么一行代码,奇迹发生了:原来的被悄悄替换成。

weixin_33419305的博客 387

CBut tonST最新版本(2011/11)所有有代码

CBlendedButtonST,CButtonST,CBlendedStaticST,CStaticST,SoftechSoftware DLL,Icons.dll

CButtonST类.rar

CButtonST类,MFC按钮类测试,CButtonST控件源码,内有测试程序以及使用说明。 1.CButtonST类简介.doc 2.使用步骤.txt 3.CButtonST_demo.rar 4.CButtonST_Source.rar

CButtonST的使用例子

VS2015下 MFC 透明按钮 无规则图片按钮 自绘控件 可以设置声音,文字颜色等 CButtonST的使用例子

CButtonST的使用

CButtonST是功能强大的按钮类,通过它可以实现多样化、美观的按钮控件。 一、CButtonST类 1、使用方法:通过MFC类向导(常用)或动态创建(Create) 在MFC对话框模板中添加“按钮资源”,在模板对应的对话框类中添加CButtonST成员,在类的DataExchange方法中添加DDX_Control相关,最后在OnInitDialog中添加风格设置代码;...

xiaoxiaoyusheng2012的专栏 1819

CButtonST用法详解!

在想使用CButtonST的工程中加入BtnST.h、BtnST.cpp、BCMenu.h、BCMenu.cpp4个文件、2个类。1. 在按钮上加入Icon,使Icon和文字同时显示假设按钮ID为IDC_BUTTON1a. 添加成员变量  CButtonST m_btn;b. 添加Icon资源,设其ID设为IDI_ICON1c. 在OnInitDialog函数中初始化按钮

2638

[MFC] CButtonST

本篇主要包括了以下的效果: 1. 在按钮上加入Icon,使Icon和文字同时显示 2. 显示平面按钮 3. 使按钮上的图标可变 4. 设置按钮在不同状态下的底色和文字颜色 5. 设置图标和文字的位置 6. 根据Icon的形状设置按钮的形状 7. 添加Tooltips 以下是Basic Features的演示界面:  效果一:在按钮上加入Icon,使Icon和文字同时显

750

VC++ MFC界面美化实战:CButtonST库集成与高级应用指南

在Windows桌面开发中,控件自定义绘制是提升应用专业度和用户体验的关键技术。通过重写WM_PAINT消息处理、响应鼠标事件,开发者可以突破原生控件的外观限制,实现圆角、渐变、动态效果等现代化设计。这一技术不仅增强了界面的视觉吸引力,更在工具软件、内部系统等场景中显著提升了操作直观性。CButtonST作为经典的MFC按钮扩展库,封装了上述复杂逻辑,通过简单的API调用即可实现丰富的定制功能。本文结合“电脑vc++库自检”和“vc++基础教程”等常见需求,详解其集成步骤、核心API及实战技巧,帮助开发者快

weixin_34082695的博客 313

MFC中透明按钮 CbuttonST

因为设计的交互界面按钮都是一些和背景融为一体的图片,所以经过一番搜索,用了别人写好的类CButtonST 下载地址: http://www.codeproject.com/Articles/57/CButtonST-v3-9-MFC-Flat-buttons 具体用法,一则百度一下很多,二则,网址里面自带demo,所以就不详细说明了,下面是自己写的简单过程,最好搜索教程。 1.

artemisrj的专栏 4527

CButtonST文件

内含BtnSt.h BtnSt.cpp BCMenu.cpp BCMenu.h四个文件

CButtonST类 按钮美化需要的BCMenu和BtnST

CButtonST类 按钮美化需要的BCMenu和BtnST,按钮美化需要的BCMenu和BtnST,帮助你美化你的MFC程序

CButtonST、CComboBox、CDialogSK

前辈写好的Button、ComboBox、Dialog的类,可以直接拿过来用

MFCCButtonST类的使用

在利用MFC制作界面时,经常需对界面按钮进行美化,本文介绍一种简单的按钮美化方法,都是基于CButtonST类。

心-无可取代 7244

vs——CButtonST用法

1. 在按钮上加入Icon,使Icon和文字同时显示 假设按钮ID为IDC_BUTTON1 a. 添加成员变量 CButtonST m_btn; b. 添加Icon资源,设其ID设为IDI_ICON1 c. 在OnInitDialog函数中初始化按钮 m_btn.SubclassDlgItem(IDC_BUTTON1,this); m_btn.SetIcon(IDI_EOAPP); m_b...

weixin_43098757的博客 448

VC++ MFC 按钮的全部样式Style(CButtonST使用技巧)

转载地址:http://www.cnblogs.com/lujin49/p/4691107.html Button Style BS_3STATE 与复选框一样本样式按钮可被单击变暗。变暗状态通常用于指示本样式的按键正处于禁用状态。 BS_AUTO3STATE 与三状态的复选框一样当用户选中它本按钮样式状态外观会改变。 BS_AUTOCHECKBOX 与复选框一样,除了在用户点控

爱她就要努力 2万+

CButtonST使用教程

CButtonST是一个简单易用、功能强大的CButton派生类。 以下是CButtonST v3.9在codeproject上原文的地址CButtonST v3.9 (MFC Flat buttons).读者可以下载demo project来参考其具体的使用细则。 也有好心的国内程序员翻译总结了CButtonST的使用方法: CButtonST使用技巧: CButtonS

Hisin Wang的专栏 3218

CButtonST使用技巧: CButtonST简介

CButtonST使我目前见过的最强大,功能最全的CButton派生类。撰写本文的目的不在于技术的讨论,而是希望能够为各位提供关于CButtonST的使用参考,以提高编写程序的速度。 下图是用CButtonST做的几个按钮 以下是CButtonST类的一些版本信息,方便大家可以及时获得它的最新版本。 作者:Davide Calabro 邮箱地址:davide_calabro@yahoo.com 个人主页:http://www.softechsoftware.it CButtonST类主要包括

sinat_38626955的博客 1558

MFC控件的外观编辑

VC++ MFC 按钮的全部样式Style转载地址:http://www.cnblogs.com/lujin49/p/4691107.html Button Style BS_3STATE 与复选框一样本样式按钮可被单击变暗。变暗状态通常用于指示本样式的按键正处于禁用状态。 BS_AUTO3STATE 与三状态的复选框一样当用户选中它本按钮样式状态外观会改变。 BS_AUTOCHECKBOX

xuanyuanlei1020的专栏 1万+
上一篇: MFC 使用EASYSIZE使对话框程序具有拖拽属性
下一篇: MFC RichEdit的用法汇总
Zenhobby
博客等级 码龄16年 468粉丝 17原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值