如何在windows上复制iTunes样式的窗口?

如何在windows上复制iTunes样式的窗口?,windows,itunes,rounded-corners,realstudio,Windows,Itunes,Rounded Corners,Realstudio,有人能提供一些关于如何在Windows中“复制”iTunes风格窗口的见解吗?具体而言,我正在寻找以下功能: 1) 圆窗 2) 顶部和底部工具栏 3) 四舍五入文本字段 我目前正在尝试使用Real Studio进行跨平台开发,虽然我发现了在OS X中执行圆角窗口的机制(对HIWindowsSetContentBorderThickness或SetContentBorderThickness的声明方法调用),但在MSDN中找不到如何在windows中执行类似操作。显然,苹果在为Windows编写i

有人能提供一些关于如何在Windows中“复制”iTunes风格窗口的见解吗?具体而言,我正在寻找以下功能:

1) 圆窗 2) 顶部和底部工具栏 3) 四舍五入文本字段

我目前正在尝试使用Real Studio进行跨平台开发,虽然我发现了在OS X中执行圆角窗口的机制(对HIWindowsSetContentBorderThickness或SetContentBorderThickness的声明方法调用),但在MSDN中找不到如何在windows中执行类似操作。显然,苹果在为Windows编写iTunes时做到了这一点。也许他们从头开始编写自定义控件

旁注:我发现几年前的这篇文章简要地讨论了它(http://discuss.joelonsoftware.com/default.asp?joel.3.454369.12),但这几乎是我能找到的全部


即使我不能准确地复制它,Windows库可能包含“手动”执行所需功能的某些方向也很好。任何进一步的帮助都将不胜感激。

苹果风格的圆角没有API,但有较低级别的API用于创建任意形状的窗口(框架窗口和控件)

我不使用RealStudio,但我相信它允许您访问.NET和本机Win32 API,因此:

如果您使用的是.NET Windows.Forms,请阅读。它是为VB7编写的,但是应该很容易翻译成您喜欢的语言


如果您使用的是原始Win32 API,那么至少有两种方法可以做到这一点。最简单但最有限的是调用API,它将窗口的形状设置为可以创建为HRGN的任何形状。但这可能不会帮你解决问题。你不想要锯齿状的边缘;您需要平滑的曲线,带有alpha混合边界,可能还有阴影。(至少苹果是这样做的。)API就是实现这一点的方法。它允许任意形状(如果您使用UpdateLayeredWindow,即使您不需要该功能来模拟iTunes,也可以动态更改)、alpha透明性和复杂的命中测试。由于原始文章已经过时,并且没有涵盖所有功能,请参阅当前文档,其中包含指向参考的链接。

有一个第三方控件,可以满足您的需要。它适用于Mac和Windows

效果很好


sb

您是只想要圆形窗口等,还是想要完全复制iTunes?前者相当简单;后者需要大量的设计和编码,一旦苹果再次改变,就不再完全复制iTunes,因此您可能希望挖掘出苹果与iTunes、QuickTime和Safari捆绑的CoreFoundation/etc.端口中的私有功能,并使用这些功能。那么,你是想要(a)成型窗口的Windows API,(b)克隆苹果所做一切的完整解决方案,还是(c)关于如何获得苹果私有方法的建议?如果你有,我会听取所有建议,但选项“a”就足够了。