大家注意到没有,像Nero、FoxMail等很多软件在XP下运行时,程序界面(包括按钮、选择框、文本框等等等等)都是XP风格的,而如果把XP的界面风格设置成Windows 经典界面的话,这些软件的界面也都会随之改变,这是怎么做到的呢?我想做到自己的软件在XP下运行时为,所有控件(按钮、文本框等等)均为XP风格,而在经典界面或9x/Me/NT/2000下运行时为标准界面。怎么做到?
调试欢乐多
找找有没有第三方控件吧。
gzing
http://vbaccelerator.com/home/VB/Code/Libraries/XP_Visual_Styles/Drawing_with_XP_Visual_Styles/article.asp
不是这样的啊,你看看XP下的文本框是什么样的?淡蓝色的边。按钮是什么样的?默认有个蓝边,而鼠标移动上去后就是桔黄色的边。你在不用其它控件的情况下,用VB编的程序能这样吗?我是要让自己的界面风格随着系统的风格而改变!呵呵。
To: zyl910(910:分儿,我又来了!)
你说的那个网站上的代码你看了吗?问几个问题:
我把源代码下载后看了看,发现把两个类模块和xml文档去掉后,程序界面是与系统界面风格一致,但将资源文件去掉后就不行了,而程序中没有任何操作资源文件的语句???这个资源文件起什么作用?最后我自己写了个测试程序,只用了他的mMain.bas和那个资源文件,就可以使自己程序的界面和系统界面风格一致了,可是mMain.bas里面的代码少得可怜,难道只用mMain.bas中用到的那个API就可以自己程序的界面和系统界面风格一致了??
mMain.bas是为了使通用控件支持XP主题风格
UxTheme是Theme函数的声明,为了使自定义控件能支持XP风格而存在的
“资源文件为了确认是否让标准控件支持XP主题风格”
可是程序中没有任何代码是取资源文件中的内容进行判断的???难道是那个API干的?To pigpag(Pigpag):
你的什么程序??是不是一个*.EXE.Manifest文件?不管是不是,传给我行吗?
[email protected]
[email protected]
存在:将该进程视觉风格标志为支持虚拟风格
没有:检查与应用程序同名的manifest是否存在
存在:将该进程视觉风格标志为支持虚拟风格
没有:将该进程视觉风格标志为不支持虚拟风格同时在窗口创建前,要用InitCommonControlsEx初始化标准控件(使用ICC_USEREX_CLASSES)那个程序的代码没有那么简单,它介绍了Theme函数的使用。Theme函数可以让自己绘制的控件支持虚拟风格(注意到IE浏览器没有,它的按键、文本框都支持虚拟风格。而写过密码察看器的人都知道:IE的文本框是IE画出来的,不是Windows标准控件。如果没有Theme函数的话,就算有了资源,它的按键、文本框还是老样子)。
http://capricciososoft.com/Documents/default.ASP?id=2-2
对于.NET,请看(转载的):
http://capricciososoft.com/Documents/default.ASP?id=2-5