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

时间:2012-06-19 05:55:29

标签: windows itunes rounded-corners realstudio

任何人都可以提供一些有关如何在Windows中“复制”iTunes样式窗口的见解吗?具体来说,我正在寻找以下功能:

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

我目前正在尝试与Real Studio进行一些跨平台开发,虽然我发现了在OS X中执行圆形窗口的机制(声明方法调用HIWindowSetContentBorderThickness或SetContentBorderThickness),但是我找不到MSDN如何在Windows中做类似的事情。显然,Apple在实际编写iTunes for Windows时完成了它。也许他们从头开始编写自定义控件。

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

如果您使用的是原始Win32 API,则至少有两种方法可以执行此操作。最简单但最有限的是调用SetWindowRgn API,它将窗口的形状设置为您可以创建为HRGN的任何内容。但这可能不会为你削减它。你不希望锯齿状的边缘;你想要平滑的曲线,alpha混合边框,也许阴影。 (至少这就是Apple所做的。)Layered Windows API是实现这一目标的方法。它允许任意形状(即使你在使用UpdateLayeredWindow时即时更改 - 虽然你不需要该功能来模拟iTunes),alpha透明度和复杂的命中测试。由于原始文章已过时,并未涵盖所有功能,因此,请参阅Layered Windows以获取当前文档,其中包含指向引用的链接。

答案 1 :(得分:1)

有第三方控件可以执行您想要的操作。它适用于Mac&视窗。

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

效果很好。

SB