码迷,mamicode.com
首页 > 其他好文 > 详细

控件自绘之CButtonST

时间:2015-01-24 17:11:04      阅读:389      评论:0      收藏:0      [点我收藏+]

标签:

源代码及可执行文件下载地址: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

标签:

原文地址:http://www.cnblogs.com/rainboy2010/p/4246091.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!