如何在Windows上复制iTunes风格的窗口?

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

1)圆形窗口2)顶部和底部工具栏3)圆angular文本字段

我目前正在尝试一些与Real Studio的跨平台开发,虽然我已经发现了在OS X中执行四舍五入的窗口的机制(声明方法调用HIWindowSetContentBorderThickness或SetContentBorderThickness),我无法在MSDN中find在Windows中做类似的事情。 显然,苹果公司在实际编写iTunes for Windows时已经做到了。 也许他们从头开始编写自定义控件。

SIDENOTE:我几年前才find这篇文章,简单地讨论它(http://discuss.joelonsoftware.com/default.asp?joel.3.454369.12),但是这几乎是我所能find的。

即使我不能完全复制它,Windows库的某些方向可能包含我需要“手动”执行的function,这将是很好的。 任何进一步的援助将不胜感激。

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

我不使用RealStudio,但是我相信它可以让你访问.NET和原生的Win32 API,所以:

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

如果您使用原始的Win32 API,至少有两种方法可以做到这一点。 最简单但最有限的是调用SetWindowRgn API,它将窗口的形状设置为任何可以创建为HRGN的形式。 但是,这可能不会削减你的。 你不想要锯齿状的边缘; 你需要平滑的曲线,与阿尔法混合的边界,也许阴影。 (至少这是苹果所做的。) 分层的Windows API是这样做的。 它允许任意形状(如果使用UpdateLayeredWindow,即使不需要该功能模拟iTunes),alpha透明度和复杂的命中测试,也可以随时更改。 由于原始文章已经过时,并且没有涵盖所有的功能,所以也请参阅Layered Windows获取当前文档,该文档链接到引用。

有一个第三方控件可以做你想做的事情。 它适用于Mac和Windows。

http://www.madebyfiga.com/fgsourcelist/

效果很好。

SB