首页 > 代码库 > 控件自绘之CButtonST
控件自绘之CButtonST
源代码及可执行文件下载地址:http://files.cnblogs.com/rainboy2010/CButtonST.zip
CButtonST是一款功能强大,从MFC CButton类派生出来的的按钮类,通过此类我们可以实现各种漂亮,美观的带图标和文字的按钮,原作者为Davide Calabro(Italy).
该类主要包括BtnST.h,BtnST.cpp,BCMenu.h和BCMenu.cpp四个文件,先将上述4个文件复制添加到自己的工程中,然后在stdafx.h文件中添加 #include "BtnST.h"
假设按钮ID为IDC_BUTTON1,成员变量为CButtonST m_btn
效果一: 在按钮上加入Icon,使Icon和文字同时显示
1. 添加Icon资源,设其ID设为IDI_ICON1
2. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);m_btn.SetIcon(IDI_ICON1);m_btn.SetFlat(FALSE);
实现效果如演示程序中的Standard按钮
效果二:使按钮上的图标可变
1. 添加两个Icon资源,ID设为IDI_ICON1和IDI_ICON2,IDI_ICON1是普通状态的图标,IDI_ICON2是按下时的图标
2. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);m_btn.SetIcon(IDI_ICON2,IDI_ICON1);
实现效果如演示程序中的Halloween按钮
效果三:使图标在上,文字在下,普通状态下图标变灰,鼠标放在按钮上时图标变亮
1. 添加Icon资源,设其ID设为IDI_ICON1
2. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);m_btn.SetIcon(IDI_ICON1, (int)BTNST_AUTO_GRAY);m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);m_btn.SetAlign(CButtonST::ST_ALIGN_VERT);
实现效果如演示程序中的Search按钮
效果四:给按钮添加Tooltip
1. 添加Icon资源,设其ID设为IDI_ICON1
2. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);m_btn.SetIcon(IDI_ICON1);m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);m_btn.SetTooltipText(_T("This is a tooltip.\r\nMultiline!"));
实现效果如演示程序中的IDC_BTNTOOLTIP按钮
效果五: 位图按钮
1. 添加Bitmap资源,设其ID设为IDB_BITMAP1
2. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);m_btn.SetBitmaps(IDB_BITMAP1, RGB(255, 0, 255));m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
实现效果如演示程序中的Bitmap2按钮
效果六: 给按钮添加超链接功能
1. 添加Icon资源,设其ID设为IDI_ICON1,添加Cursor资源,设其ID为IDC_HAND2
2. 在OnInitDialog函数中初始化按钮
m_btn.SetIcon(IDI_ICON1);m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);m_btn.SetURL(_T("http://www.softechsoftware.it"));m_btn.SetTooltipText(_T("http://www.softechsoftware.it"));m_btn.SetBtnCursor(IDC_HAND2,TRUE);
实现效果如演示程序中的SoftechSoftware按钮
控件自绘之CButtonST