VC学习笔记之一:怎样实现XP风格按钮
作者: wanghero
下载本文示例源代码

示例代码运行效果图
在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类, 如下图:

5、在OnInitDialog中加入如下代码:
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$.
分享到:
相关推荐
除了自定义绘制,还可以使用MFC的CButtonST类,这是一个已经实现了XP风格的按钮类,可以直接在项目中使用。CButtonST提供了许多预设的样式,使得按钮看起来更加现代,同时也简化了代码实现。只需要包含`ButtonST.h`...
在VC++编程环境中,实现XP风格的按钮是一种提升应用程序界面美观度的重要技术。XP风格的按钮,也称为“XP Visual Styles”...在学习过程中,结合提供的资源如“怎样实现XP风格按钮”案例,可以深入理解和实践这一技术。
本主题将深入探讨如何在VC6中实现XP风格的按钮,即“ButtonXP”。XP风格按钮是Windows XP操作系统引入的一种新设计,它提供了更加美观和现代的用户界面元素。 在描述中提到的`ButtonXP.cpp`和`ButtonXP.h`是两个...
本篇将深入探讨如何利用VC实现XP风格的按钮,这种按钮在鼠标悬停时会呈现出独特的视觉效果。 XP风格的按钮,全称为Windows XP风格按钮,是微软在Windows XP操作系统中引入的一种设计,它的特色在于具有平滑的边角、...
在Windows XP系统中,用户界面引入了一种新的视觉风格,被称为“XP风格”或“Aero风格”,它提供了更丰富的图形效果和更现代化的外观。在编程领域,尤其是使用Microsoft Visual C++(VC++)进行Windows应用程序开发...
通过学习这个项目,开发者可以掌握如何利用MFC和GDI进行控件的自定义绘制,了解Windows XP风格的UI设计原则,以及如何在老版本的VC6.0环境中实现这些效果。这对于理解Windows图形用户界面的底层工作原理,以及提升...
在本文中,我们将深入探讨如何实现具有XP风格的按钮,这是一种在Windows XP操作系统中常见的视觉效果,它提供了平滑的边缘、渐变色和抗锯齿等特性。我们将基于提供的VC(Visual C++)源码文件,包括GDIDraw.cpp、...
"VC XP风格按钮.rar"这个压缩包包含的资源,很可能是用于帮助开发者实现这一功能的源代码文件。 WinXPButtonST.cpp和WinXPButtonST.h这两个文件,分别代表了实现和声明C++类的源代码和头文件。在C++编程中,头文件...
在Windows XP系统中,微软引入了一种新的用户界面风格,称为“XP风格”或“Aero风格”,它提供了更丰富的图形效果和改进的用户交互体验。对于开发者来说,尤其是使用较早版本的Visual C++ 6.0(简称VC6)进行开发的...
在VC++编程环境中,我们经常会遇到需要操作用户界面控件的状态和布局,比如按钮的启用与禁用、控件的隐藏与显示、调整控件的大小和位置等。以下是对这些知识点的详细解释: 1. **按钮的使能与禁止**: 当我们需要...
在本文中,我们将深入探讨MFC(Microsoft Foundation Classes)中的一个重要概念——如何重绘按钮控件,特别是针对VC6环境。MFC是一个C++库,它为开发Windows应用程序提供了丰富的功能,包括各种用户界面元素的封装...
XP风格的按钮就是一种流行的设计趋势,它模仿了微软Windows XP系统中的图形用户界面元素,使得按钮在视觉上更加平滑、精致。本篇将详细讲解如何在VC++中实现XP风格按钮的界面编程。 首先,我们需要了解Windows API...
在IT行业中,尤其是在Windows应用程序开发领域,XP风格的按钮是一种非常经典的用户界面元素。这种风格源自微软的Windows XP操作系统,以其独特的视觉样式和交互体验深受用户喜爱。在本篇文章中,我们将深入探讨如何...
"实现XP风格的自绘按钮"是一个针对初级开发者的学习实例,旨在教授如何利用VC++来创建具有Windows XP风格的按钮。在Windows XP系统中,按钮拥有更加平滑的边缘和半透明效果,这被称为“XP风格”。 首先,我们要理解...
在提供的“核心实例2 XP风格按钮”压缩包中,应该包含了具体的源代码示例,通过查看和学习这个实例,你可以更深入地理解如何在VC++中自绘XP风格的按钮。记得仔细研究代码中的每个函数和细节,这将有助于你掌握自定义...
### vc6.0使用XP显示风格 #### 一、背景介绍与原理 在早期的软件开发过程中,Visual C++ 6.0 (简称VC6.0)是非常流行的一款集成开发环境(IDE)。随着Windows XP操作系统的发布,其引入了一种全新的用户界面主题...
这个源代码可能会包含一个自定义的CButton子类,该子类覆盖了OnPaint()方法和其他必要的事件处理函数,以实现XP风格的按钮效果。 总结来说,实现VC++中的XP风格自绘按钮涉及启用系统主题,理解并使用主题API,根据...
### VC6.0 实现 XP 风格的方法详解 #### 概述 在 Windows XP 系统下,用户界面引入了许多新特性,包括透明效果、光滑边角以及丰富的颜色方案等,这些特点统称为“XP 风格”或“XP 主题”。对于开发者而言,如何让...
要实现VC6.0 具有XP风格界面,需要在程序中添加一个Manifest文件。下面是实现的步骤: 1. 打开 VC6 工程,找到资源视图(ResourceView),然后在视图中的树的根结点上点鼠标右键,选择菜单“插入(Insert)”。 2....