任何人都可以提供一些关于如何在Windows中"复制"iTunes样式窗口的见解吗? 具体来说,我正在寻找以下功能:
1) 圆形窗口2) 顶部和底部工具栏3) 圆角文本字段
我目前正在尝试使用Real Studio进行一些跨平台开发,虽然我已经发现了在OS X中执行圆形窗口的机制(声明对HIWindowSetContentBorderThick或SetContentBorderThick的方法调用),但我无法在MSDN中找到如何在Windows中执行类似操作。 显然,苹果在为Windows编写iTunes时做到了这一点。 也许他们从头开始编写自定义控件。
旁注:我从几年前找到了这篇文章,简要讨论了它(http://discuss.joelonsoftware.com/default.asp?joel.3.454369.12),但这几乎是我能找到的全部。
即使我不能完全复制它,Windows 库可能包含我需要"手动"完成的功能的一些方向也会很好。 如有任何进一步的协助,将不胜感激。
没有用于执行 Apple 样式圆角的 API,但有较低级别的 API 用于创建您想要的任何形状的窗口(框架窗口和控件)。
我不使用 RealStudio,但我相信它允许您访问 .NET 和本机 Win32 API,因此:
如果您使用的是 .NET Windows.Forms,请阅读 Visual Studio .NET 中的形状 Windows 窗体和控件。它是为 VB7 编写的,但应该很容易翻译成您喜欢的语言。
如果使用原始 Win32 API,则至少有两种方法可以执行此操作。最简单但最有限的是调用 SetWindowRgn API,它将窗口的形状设置为您可以创建为 HRGN 的任何形状。但这可能不会为你削减它。你不想要锯齿状的边缘;你想要平滑的曲线,带有 Alpha 混合边框,也许还有阴影。(至少苹果是这样做的。分层Windows API是做到这一点的方法。它允许任意形状(如果您使用 UpdateLayeredWindow,甚至可以动态更改 - 尽管您不需要该功能来模拟 iTunes)、alpha 透明度和复杂的命中测试。由于原始文章已经过时,并且没有涵盖所有功能,因此另请参阅分层窗口以获取当前文档,其中包含指向参考的链接。
第三方控件可以执行您想要的操作。 它适用于Mac和Windows。
http://www.madebyfiga.com/fgsourcelist/
效果很好。
某人