VB6编程实现XP风格

VB6程序实现XP或者WIN7风格 这是一个老掉牙的问题了,现在写,一是因为我才接触这一类界面美化(以前一直以功能为主,需要漂亮界面也都是自己画的),二是发现网上的内容很多不准确,所以在这里整理一下。 1,Manifest方法(下面其它方法也都是以此为基础的) 用文本编辑器编写一个App.exe.Manifest文件,放到App.exe同文件夹下,注意与App同名。 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xm... 阅读详情
 

VB6编程实现XP风格

 

有 Windows XP系统后,网上就开始讨论VB6编程实现XP风格。我在编写《股票管理大师》时,在网上收集整理了两种方法。

 

第一种方法是用manifest文件实现XP风格

 

用VB6开发的应用程序在Windows XP系统中运行时,只有窗口标题条具备XP风格,窗体上的按钮、文本框等控件仍然显示Windows传统风格。如下图所示:


应用程序是通过一个XML资源文件来通知系统加载具备XP风格的组件。

XML文件的内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity

name="XP style manifest"

processorArchitecture="x86"

version="1.0.0.0"

type="win32"/>

<dependency>

<dependentAssembly>

<assemblyIdentity

type="win32"

name="Microsoft.Windows.Common-Controls"

version="6.0.0.0"

processorArchitecture="x86"

publicKeyToken="6595b64144ccf1df"

language="*"

/>

</dependentAssembly>

</dependency>

</assembly>

下面用一个具体例子来说明用此法实现的具体步骤。

1、新建一个VB工程,将工程名称改为:“VB实现XP风格”,启动对象改为:“Sub Main”,将原来的窗体Form1的名称改为“FormVB_XP”。

将上述XML文件内容保存为文件名为“VB实现XP风格.exe.manifest”的文本文件,并将其保存在最终编译出的“VB实现XP风格.exe”文件相同的目录下。

2、添加一个模块,在该模块中输入如下代码:

Private Declare Function InitCommonControlsEx Lib "comctl32.dll" (iccex As tagInitCommonControlsEx) As Boolean

Private Type tagInitCommonControlsEx

lngSize As Long

lngICC As Long

End Type

Private Const ICC_USEREX_CLASSES = &H200

‘VB实现XP风格的初始化函数

Public Function InitCommonControlsVB() As Boolean

On Error Resume Next

Dim iccex As tagInitCommonControlsEx

With iccex

.lngSize = LenB(iccex)

.lngICC = ICC_USEREX_CLASSES

End With

InitCommonControlsEx iccex

InitCommonControlsVB = (Err.Number = 0)

On Error GoTo 0

End Function

Sub Main()

InitCommonControlsVB    ‘调用初始化函数

FormVB_XP.Show

End Sub

注意初始化动作必须在所有窗体加载前完成。至此,你编译后的VB实现XP风格.exe将具备XP风格,如下图所示:


用这种方法实现XP风格存在如下不足:

1、你的应用程序总有一个manifest文件如影随形,如果这个manifest文件被破坏,XP风格也就不能实现了,VB应用程序当即原形毕露。

2、每次建立新的VB工程时,总不能忘记按照上述步骤去认真地完成,需要写一段也不算长的代码,而且必须在所有窗体调用前就调用初始化函数。

 

第二种方法是用资源文件实现XP风格

 

用资源文件实现XP风格是将manifest文件编译到资源文件中,这就克服了用上述方法的两个不足之处。采用这种方法实现XP风格简单可行,不需要写代码,只需要事先准备好一个资源文件,而且可以永久性地使用,也就是说,准备好这个资源文件后,今后新建VB工程时,只要把此资源文件添加进去即可。

 

因此,准备这个资源文件就是本方法的关键,具体步骤是:

 

1、将XML文件内容保存为文件名为:“abc.exe.manifest”。

其中的abc.exe可以随意更改,但需要注意的是,保存后要看看其文件长度,其总字节数必须能够被4整除,如果不是,你可以在文件尾加空格。

2、在abc.exe.manifest文件的相同目录下新建一个文本文件,输入如下内容:

1 24 abc.exe.manifest

保存后将文件改名为xp.rc

3、在DOS下进入VB安装目录的Wizard目录(如C:\Program Files\Microsoft Visual Studio\VB98\Wizards),在提示符处输入下行命令:

 

rc /r d:\vbxp\xp.rc

 

假设这个xp.rc文件保存的D盘的vbxp目录下。

 

这样,资源文件xp.res就编译好了。这个编译好的资源文件在我的资源中有下载。

 

最后说一下需要注意的地方。在Frame内的单选按钮运行后显示为黑色,解决方法是把它们先放入一个PictureBox内,并设置PictureBox的BorderStyle属性为2-None,然后再连同PictureBox一起剪切到一个Frame中。

用C#和VB.NET实现Office XP风格的菜单 好了,这些是题外话了。这种移植很枯燥,但可以很快熟悉新的Beta2的类库和函数,Show出来的菜单还不错,感觉是Office2000风格的菜单。最后一部分是制作VS.NET或XP风格的例子,上面那个例子的效果不能使我完全满意,然后我重新写了另外一个,不过我对最后的结果还不是很满意,因为我的没有上一个例子那么完整,例子中我只显示了这个风格的菜单,对于事件响应、状态栏更新、tooltips、菜单的状态(enabled state)等处理都没有考虑,我把这些归结为时间问题,并承诺自己下次把它做得更好。 阅读详情

相关推荐

VC无负担实现XP风格界面

关于让自己的程序界面实现XP风格这个问题,在网上的讨论很多,大多数的作法都是写一个.manifest文件,然后将文件名改一下,比如.exe文件为test.exe,就将这个.manifest文件改名成test.exe.manifest,并将其和test.exe放在同一个目录里,这样test.exe在XP或2003(必须启动Themes服务)下运行时就会呈现XP界面风格。有件事情必须说一下,按照上

★卢培培★ ── 欢迎光临卢培培(goodname008)的BLOG 8736

【搬运】VB6实现XP风格控件样式

VB6不支持XP风格?我以前也是这么认为的,呵呵…… 在第一个加载的窗体中声明和引用下面这个API过程 Private Declare Sub InitCommonControls Lib "comctl32.dll" () Private Sub Form_Initialize()InitCommonControlsEnd Sub 这样就可以调用XP风格...

weixin_30699955的博客 759

精美的XP风格VB日历控件设计与实现

htmltable {th, td {th {pre {简介:在Visual Basic(VB)环境下设计的日历控件采用微软Windows XP视觉样式,为应用程序提供直观、美观的日期选择功能。控件源码公开,便于开发者根据需求定制和扩展功能,增强用户体验。控件集成日历选择、日期范围选择、日期验证等功能,适用于多种软件应用,提升日历功能的实用性和便捷性。

weixin_42186015的博客 929

记一次进销存软件的破解(补充)

上一篇文章中,有几个点没说清楚,此处作补充。 一、是如何判断出,主界面的过期弹窗是在htsoft.dll中? 二、用二进制编辑软件HexFrame修改dll文件时,怎么找到的代码位置? 备注:此软件没有加壳,省去了脱壳的步骤,并且其代码基本上没有进行混淆,没有做一些防止反编译、反调试的处理,所以处理起来还算比较容易。 ...

liuyouzhang89的专栏 1033

VB实现XP风格进度条的详细教程

VB(Visual Basic)进度条控件是开发者在用户界面设计中常用的组件之一。它主要用于表示操作的进度状态,提供给用户直观的操作反馈。进度条控件不仅可以增强用户体验,还可以帮助开发者在设计复杂的后台任务时,保持用户界面的响应性。XP风格进度条是Windows XP操作系统中引入的界面元素,以其鲜明的视觉特征和直观的操作体验,受到了广泛好评。在这一章节中,我们将深入探讨如何通过自定义绘制技术,实现XP风格的进度条控件,并对其视觉效果进行个性化调整。

weixin_42153793的博客 407

使用VB实现Windows XP风格窗体设计

本文还有配套的精品资源,点击获取 简介:在Visual Basic编程中,通过调用Windows API实现具有Windows XP特有视觉样式的窗体设计,包含磨砂玻璃效果和圆角按钮等,以提升用户界面的友好性和现代感。本文详细介绍如何通过 SetWindowTheme 函数应用XP主题,并提供可能包含的项目文件结构说明,强调考虑程序的跨系统兼容性。 1....

weixin_35294091的博客 822

VB编程实现XP风格之终结篇

VB编程实现XP风格之终结篇南京 宋陈三                                 (本文发表于《软件报》2006年第17期)网上讨论编程实现XP风格已经很久了,但对于VB编程实现XP风格,却终没有一个完美的解决方案。笔者通过N个日夜的刻苦钻研终于揭开其中奥秘。下面分为三个方面与大家共享之。下载源代码一.用manifest文件实现XP风格正

阿珊境界 7630

VB自定义控件:实现Windows XP风格滚动条(V1.0)

本文还有配套的精品资源,点击获取 简介:在VB编程中,开发者常利用控件来构建界面,其中滚动条控件能提高用户体验并使程序更专业。本文档描述了一款专为VB设计的Windows XP风格滚动条控件,它提供了美观的视觉体验,并与XP系统UI保持一致。该控件支持自定义外观和事件处理,以适应Windows XP及以上版本的操作系统。开发者在使用此控件时应考虑兼容性和性能优化,并将其添加...

weixin_42601134的博客 863

VB使用manifest以支持xp风格和获得管理员权限

一、在win6以上系统里获得管理员权限 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="IsUserAdmin" type="w

1287

VB6程序的控件改为Win xp 和 Win7控件风格的两种方法

VB6应用程序的控件外观比较难看,这是改为Win xp 和 Win7控件风格的两种方法的工程代码。

VB6.0无负担实现xp风格

VB6.0无负担实现xp风格 1、导入资源文件; 2、在主程序的所有过程之前做如下声明: '声明API函数 Private Declare Sub InitCommonControls Lib "comctl32.dll" () Private Sub Form_Initialize()  InitCommonControls End Sub

VB6 IDE XP风格实现之见解

 VB6 IDE XP风格实现之见解  本人一直用VB6中文企业版,想把它的IDE界面XP风格化。可是,出了个天大的问题。第一步,打上补丁VB6SP6;第二步,制作manifest文件:vb6.exe.manifest。好了,运行VB6程序,XP风格出来了。但问题也出来了,这时编辑窗口独立出来成为了顶级窗口,全屏时将覆盖IDE,即脱离了IDE。这是不希望的结果。而且,编辑窗口原来那块区

chenjl1031的专栏 1859

vb6 XP风格控件

vb6的所有控件都还是延续2000系统的风格,并没有更新到xp风格上,其实只要一个简短的API,所有控件就浑然一新了,这里有个小例子,希望对大家有帮助!

用VB实现带图片的XP风格的按钮控件

       虽然在VB里实现XP风格很简单,但是要使用XP风格同时又让按钮显示图片,则实现起来要麻烦一些,为此,我写了一个控件来实现前述功能,同时让读者可以从中了解XP主题界面的绘制过程。 使用办法很简单,在VB里新建一个工程,然后添加一个控件模块,粘贴以下代码,再将控件放置到窗口即可,当然,可别忘设置图片和文字属性,具体代码如下: '* ****************...

miaozk2006的专栏 439

VB6使用XP风格(Manifest)

附件中。 使用方法: 工程->添加文件->完成。

Imatest-Star模块(西门子星图)

星图分析指南:基于ISO12233标准的MTF测试方法,通过放射状射线和正弦灰度变化评估相机SFR性能。

weixin_64706696的博客 1565

让VB6程序拥有XP风格

通过制作VB6资源文件,可以让VB6程序具有XP风格。这样,就可以让VB6也具有像现代应用程序的界面。本教程就是专门实现这一点的。

dd_jzt的博客 386

从FreeCAD到BIMBase:PlaneGCS约束求解器的移植使用指南

本文为BIMBase平台的开发者提供了一份详细的PlaneGCS几何约束求解器移植与集成指南。文章深入探讨了如何从FreeCAD中提取PlaneGCS核心代码,并将其适配到BIMBase的C++二次开发环境中,重点解决了内存管理、数据模型桥接、约束抽象以及性能调优等关键问题,旨在帮助开发者构建稳定高效的参数化设计模块。

weixin_29213525的博客 320

VC皮肤以及XP风格实现

本文章由三部分组成:1.利用XPButton类实现XP风格的按钮。2.无负担实现XP风格界面。3.VC皮肤的使用。良好的程序界面会给客户留下好的印象。通过本文介绍的三种方法,可以在实际编程中满足一些对界面要求不是很高的软件的需求。第一部分:利用XPButton类实现XP风格的按钮。此部分主要用到一个网上流传的类:XPButton。具体使用步骤如下:1.创建基于对话框的MFC工程假设命名为:XP

wudizuijimo的专栏 2608

从虚拟机到双系统:手把手教你为Gromacs搭建最强Linux环境(含WSL2、Ubuntu22.04配置)

本文详细指导如何在Windows系统下为Gromacs分子动力学模拟搭建高性能Linux环境,涵盖WSL2和Ubuntu22.04双系统配置。通过对比虚拟机、WSL2和原生Linux的性能数据,提供GPU加速、内存优化等实用技巧,帮助科研人员提升计算效率。

weixin_30861797的博客 270

EtherCAT主站视角:如何正确配置一个支持动态PDO的从站(以倍福TwinCAT为例)

本文详细解析了在TwinCAT环境下配置支持动态PDO的EtherCAT从站的全过程。通过MDP(Modular Device Profile)实现模块化配置,涵盖从站工作原理、TwinCAT工程配置、调试技巧到高级应用实践,帮助工程师快速掌握动态PDO配置技术,提升工业现场设备扩展与维护效率。

weixin_30466039的博客 266

VC6无负担实现XP风格界面

VC6无负担实现XP风格界面 关于让自己的程序界面实现XP风格这个问题,在网上的讨论很多,大多数的作法都是写一个.manifest文件,然后将文件名改一下,比如.exe文件为test.exe,就将这个.manifest文件改名成test.exe.manifest,并将其和test.exe放在同一个目录里,这样test.exe在XP或2003(必须启动Themes服务)下运行时就会呈现XP界

浩然也空 的专栏 760

【硬核指南/MI50 32G/Ubuntu】从零部署大模型:MI50显卡Ubuntu系统驱动安装与避坑全记录

本文详细记录了在Ubuntu系统上为AMD MI50显卡安装驱动并部署大模型的完整流程,包括硬件兼容性检查、BIOS关键设置、系统安装优化、ROCm驱动安装及常见问题解决方案。特别针对MI50显卡在X99平台上的特殊配置需求提供了实用技巧,帮助用户避免常见陷阱,提升大模型训练效率。

weixin_42520909的博客 805
上一篇: VB6中如何使MSHFlexGrid选中行反色显示?
下一篇: VB6编程创建Access数据库
htsoft
博客等级 码龄27年 4粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值