怎样实现XP风格按钮

2016-02-19 15:02 4 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的怎样实现XP风格按钮懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】

  示例代码运行效果图

  在vc6下面怎样实现具有xp风格的按钮?我这里介绍一种简单的方法。 我们需要用到两个类,一个是CButtonST,另一个是CWinXpButtonST.这两个类一个是按钮类,另一个是Xp风格按钮类,大家可以从我的例子原代码中得到相关的4个文件(BtnST.h、BtnST.cpp、WinXPButtonST.h、WinXPButtonST.cpp)。

  下面开始制作这个示例程序 

  1、使用vc的向导制作一个工程dialog工程,起名为:XPDlg。并接受一切默认值。

  2、将我上面提到的4个文件copy到你的工程所在的目录。打开FileView将4个文件加入到你的工程中去。查看ClassView增加了2个类,CButtonSt 和CWinXpButtonST。

  3、在CAboutDlg类中加入#include "WinXPButtonSt.h"并加入成员 CWinXPButtonST m_OK;

  4、使用MFC 类向导在类CAboutDlg中,加入2个函数 ON_WM_CTLCOLOR ON_WN_INITDIALOG注意这个地方是CAboutDlg类,而不是默认的CXPDlgDlg类, 如下图:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  5、在OnInitDialog中加入如下代码:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)
m_OK.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);m_OK.SetBkColor(RGB(162,189,252));m_OK.SetRounded(TRUE);m_OK.SetTooltipText(_T("关闭"));
6、在CAboutDlg::OnCtlColor中加入如下代码:
if(nCtlColor==CTLCOLOR_LISTBOX){  //pDC-SetBkMode(TRANSPARENT);  pDC-SetTextColor(RGB(0,0,0));  pDC-SetBkColor(RGB(233,233,220));  HBRUSH b=CreateSolidBrush(RGB(233,233,220));  return b;}else if(nCtlColor==CTLCOLOR_SCROLLBAR){  //pDC-SetBkMode(TRANSPARENT);  pDC-SetTextColor(RGB(0,0,0));  pDC-SetBkColor(RGB(233,233,220));  HBRUSH b=CreateSolidBrush(RGB(233,233,220));  return b;}else if(nCtlColor==CTLCOLOR_EDIT){  //pDC-SetBkMode(TRANSPARENT);  pDC-SetTextColor(RGB(0,0,0));  pDC-SetBkColor(RGB(233,233,220));  HBRUSH b=CreateSolidBrush(RGB(233,233,220));  return b;}else if(nCtlColor==CTLCOLOR_STATIC){  pDC-SetTextColor(RGB(0,0,0));  pDC-SetBkColor(RGB(160,180,220));  HBRUSH b=CreateSolidBrush(RGB(160,180,220));  return b;}else if(nCtlColor==CTLCOLOR_DLG){  pDC-SetTextColor(RGB(0,0,0));  pDC-SetBkColor(RGB(160,180,220));  HBRUSH b=CreateSolidBrush(RGB(160,180,220));  return b;} 
7、在CAboutDlg::DoDataExchange中加入如下代码:
DDX_Control(pDX, IDOK, m_OK);
8、打开Dialog对话框IDD_XPDLG_DIALOG 并加入一个Button,双击这个Button,生成该按钮单击处理函数,在其中加入
CAboutDlg Dlg;Dlg.DoModal();
9、运行Ctrl+F7

  这个程序所用到的类,是一个意大利人写的,还有其他不少功能,大家可以参照说明来使用,顺便提一句,这个类不能用作商业用途,如果需要的话,需要给作者支付5$.

本文示例代码或素材下载

来源:http://www.tulaoshi.com/n/20160219/1608674.html

延伸阅读
在微软的很多软件(如WORD)的工具栏中,都采用一种浮动按纽,即正常情况下按纽的图标呈灰色,当鼠标移动到某一按纽时,该按纽自动向上凸起且变为彩色,并在按纽的右下方有一标签提示该按纽的功能,鼠标移开后又自动还原,这种按纽用VB实现时,方法如下: 1.先用绘图工具作出按纽图标后存盘(如1.bmp),再用图象处理软件将该图标转换为灰度...
标签: PS PS教程
本文为中国合作伙伴印象特别供稿,转载必须取得 授权 本教程的主要目的是使用photoshop中的一些最基本的工具,绘制水晶效果图标。 所使用的主要工具有:“椭圆、矩形选框工具”、“椭圆、矩形工具”、渐变工具。 图层面板中的主要功能:样式、编组、图层混合模式,蒙板。 因为主要针对的对象是photoshop的初学者,所以步骤...
自绘按钮的实现 作者:杜修杏 下载本文示例工程 如果你希望能够在自己的程序中表现出新意,那么你一定不会仅仅满足于MFC提供那些标准控件。这时,我们就必须自己另外多做些工作了。就改变控件外观这一点来说,主要是利用控件的自绘功能(Owner Draw)实现的。本篇将和各位一起定义一个XP风格的...
最终效果图 www.Tulaoshi.com 最终效果图
最终效果图   1、新建画布,大小随意,然后新建圆角矩形图形,如图所示:   2、圆角矩形属性。   3、画一个吧,高 宽自定。   4、接下来要出玻璃效果就是靠图层属性设置,选择蒙板图层右键混合属性,描边设置:   5、渐变叠加设置:   6、渐变值:   7、...

经验教程

177

收藏

16
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部