大家注意到没有,像Nero、FoxMail等很多软件在XP下运行时,程序界面(包括按钮、选择框、文本框等等等等)都是XP风格的,而如果把XP的界面风格设置成Windows 经典界面的话,这些软件的界面也都会随之改变,这是怎么做到的呢?我想做到自己的软件在XP下运行时为,所有控件(按钮、文本框等等)均为XP风格,而在经典界面或9x/Me/NT/2000下运行时为标准界面。怎么做到?

解决方案 »

  1.   

    只知道有这个功能,具体哪个API》》我也不知道
    找找有没有第三方控件吧。
    gzing
      

  2.   

    用WinXP新增函数集:Theme函数
    http://vbaccelerator.com/home/VB/Code/Libraries/XP_Visual_Styles/Drawing_with_XP_Visual_Styles/article.asp
      

  3.   

    好像VB编写的软件在XP下就是XP风格,在2000下就是2000的风格呀,好像不需要什么调整的?
      

  4.   

    在XP下编的,就是XP风格,到98,2000上也能成XP风格,在98,2000上的拿到XP上就不知道啦,哈哈
      

  5.   

    to jjkk168(醉言烟语) and csdngoodnight(居然比我还快,你真行!) :
    不是这样的啊,你看看XP下的文本框是什么样的?淡蓝色的边。按钮是什么样的?默认有个蓝边,而鼠标移动上去后就是桔黄色的边。你在不用其它控件的情况下,用VB编的程序能这样吗?我是要让自己的界面风格随着系统的风格而改变!呵呵。
      

  6.   

    下面说正事!
    To: zyl910(910:分儿,我又来了!) 
    你说的那个网站上的代码你看了吗?问几个问题:
    我把源代码下载后看了看,发现把两个类模块和xml文档去掉后,程序界面是与系统界面风格一致,但将资源文件去掉后就不行了,而程序中没有任何操作资源文件的语句???这个资源文件起什么作用?最后我自己写了个测试程序,只用了他的mMain.bas和那个资源文件,就可以使自己程序的界面和系统界面风格一致了,可是mMain.bas里面的代码少得可怜,难道只用mMain.bas中用到的那个API就可以自己程序的界面和系统界面风格一致了??
      

  7.   

    资源文件为了确认是否让标准控件支持XP主题风格
    mMain.bas是为了使通用控件支持XP主题风格
    UxTheme是Theme函数的声明,为了使自定义控件能支持XP风格而存在的
      

  8.   

    我有一个程序,只要用它处理EXE文件,就能使其拥有XP风格(当然在XP下)
      

  9.   

    To zyl910(910:分儿,我又来了!):
    “资源文件为了确认是否让标准控件支持XP主题风格”
    可是程序中没有任何代码是取资源文件中的内容进行判断的???难道是那个API干的?To pigpag(Pigpag):
    你的什么程序??是不是一个*.EXE.Manifest文件?不管是不是,传给我行吗?
    [email protected]
      

  10.   

    源码我有
    [email protected]
      

  11.   

    这个程序是Visualicious。源码研究好就删了,其实就是将manifest插入资源中。
      

  12.   

    在WinXP下应用程序的启动:Windows系统最先检查资源文件中是否有该资源
    存在:将该进程视觉风格标志为支持虚拟风格
    没有:检查与应用程序同名的manifest是否存在
       存在:将该进程视觉风格标志为支持虚拟风格
       没有:将该进程视觉风格标志为不支持虚拟风格同时在窗口创建前,要用InitCommonControlsEx初始化标准控件(使用ICC_USEREX_CLASSES)那个程序的代码没有那么简单,它介绍了Theme函数的使用。Theme函数可以让自己绘制的控件支持虚拟风格(注意到IE浏览器没有,它的按键、文本框都支持虚拟风格。而写过密码察看器的人都知道:IE的文本框是IE画出来的,不是Windows标准控件。如果没有Theme函数的话,就算有了资源,它的按键、文本框还是老样子)。
      

  13.   

    在VB中除了资源文件,还有一些注意事项:如框架里的但选按钮,带有图形的按钮、标题栏等,通常仍然不会顺利地变为XP风格。我综合了一下大家的经验,请看:
    http://capricciososoft.com/Documents/default.ASP?id=2-2
    对于.NET,请看(转载的):
    http://capricciososoft.com/Documents/default.ASP?id=2-5