C++ 如何对Win32应用程序进行蒙皮

C++ 如何对Win32应用程序进行蒙皮,c++,winapi,skin,C++,Winapi,Skin,Win32看起来很糟糕,如何通过自定义外观使其看起来更好 我指的是Adobe产品、iTunes、Autodesk 3dsmax和Softimage XSI、Windows media player、Blender、Comodo防火墙、Winamp、Babylon客户端和少量下载管理器等 有许多类似的应用程序在那里,但我找不到任何适当的教程或指南,它看起来像秘方 仅-两个-在线提供教程: 老旧无用: 仅覆盖不透明背景(这是我避免的,我需要更多关于GUI组件的信息): 是否有任何书籍或适当的指南来

Win32看起来很糟糕,如何通过自定义外观使其看起来更好

我指的是Adobe产品、iTunes、Autodesk 3dsmax和Softimage XSI、Windows media player、Blender、Comodo防火墙、Winamp、Babylon客户端和少量下载管理器等

有许多类似的应用程序在那里,但我找不到任何适当的教程或指南,它看起来像秘方

仅-两个-在线提供教程:

老旧无用:

仅覆盖不透明背景(这是我避免的,我需要更多关于GUI组件的信息):

是否有任何书籍或适当的指南来学习如何为Win32api构建外观?


编辑:下面我接受大卫·罗德里格斯的评论↓↓

>我在使用C++ Builder之前已经做过。我采取的方法是创建一个窗体,将其设置为无边框,并将整个窗体的颜色设置为相同的颜色。然后我将窗体透明度设置为这种颜色。然后,我将图像添加到表单中,以创建所需的皮肤


我确信这一切都可以通过标准win API完成,但我不能描述(或建议)仅仅通过API调用来完成。

操作系统会自动为您处理“蒙皮”

在“经典”模式(或Windows 2000及更早版本)下,这将为您提供一个外观非常经典的界面。这些窗口的绘制方式与自windows 95以来的一贯方式相同。当你说“Win32看起来很糟糕”时,这大概就是你所指的。但是,您需要意识到,许多人喜欢这种外观,并特别选择在他们的机器上启用它。[警告:个人意见马上就要出来了!]我就是其中之一,从开发者机器上发布的屏幕截图判断,我肯定不是唯一一个

Windows XP实际上引入了“蒙皮”或主题引擎,它存在于一组Windows DLL中。到,您的应用程序将自动获得这些视觉效果。一些人说这个版本的Windows看起来很漂亮,而另一些人则对“花哨”这个词非常满意。如果需要,保留该选项以允许用户切换到“经典”主题(如上所述)

WindowsVista彻底检修了Windows的主题引擎,并引入了一个名为“Aero”的新用户界面。这提供了华而不实的窗口和控件,以及透明效果,只要图形卡支持。同样,通过显式链接到ComCtl32.dll的版本6,应用程序将自动应用所有这些样式

值得注意的是,通过所有这些,微软为用户提供了定制用户界面中使用的颜色(以及字体和其他东西)的能力。例如,Aero默认为蓝色。如果你不喜欢蓝色,你可以改变它。我会定期更换UI颜色以获得乐趣并为自己重新注入活力。如果你不识字或不喜欢这种字体,你也可以改变它

因此,如果您选择对应用程序执行一些不同的操作,定义自己的自定义调色板并忽略用户通过提供的自定义界面选择的选项,那么您的应用程序将看起来很破旧,就像用户桌面上的拇指一样突出。在设计UI时,您最不希望做的事情就是与众不同或看起来与众不同


简而言之,如果您想要flashy,请将您的计算机升级到Windows Vista或更高版本,并启用Aero界面。不要覆盖用户或尝试自定义绘制所有控件。你最终会发现一个应用程序很难使用,不能按预期工作,维护起来很麻烦,而且通常看起来比不使用它更糟糕。

如何剥离Win32应用程序——假设你已经找到了该应用程序,你需要一把非常锋利的刀。从…处保留应用程序。。。(很抱歉这个坏笑话)如果我知道怎么做,我会帮你的,但是我没有做过任何Win32开发,也几乎没有UI开发,所以我真的帮不了你。很抱歉(BTW:我在这里,因为我基本上阅读所有问题的C++标签-当我找到时间至少)@麦克伯迪:老实说,我忘了,在阅读一些白皮书(戴维玩笑),我可以想象成功的50岁,所以我决定集中在更有用的研究-我认为现代主题是好的,但只是表演还没有,期待Windows 8,感谢您的评论!;)谢谢Jonathan,我有一个问题:你如何处理GUI组件,如范围滑块、滚动条、列表框、下拉列表、单选按钮等,你不能简单地将透明图像应用于它们,对吗?@Jonathan,你看过C++Builder XE2中引入的用于自定义蒙皮的新样式引擎了吗?@Remylebau TeamB,我还没有XE2:(样式引擎是否简化了整个过程?@sysop,您将gui组件放在图像的顶部,它们仍然会显示良好。只有表单消失。尽管如您所述,如果我使用皮肤,我有时会将图像用于按钮而不是标准控件。@Jonathan:是的。有关说明,请参阅。这并不能回答问题当然@CodyGray。OP的问题不是:“做定制UI设计是个好主意吗?”而是“我们怎么做?”。