2012-06-19 17 views
1

任何人都可以提供一些有關如何在Windows中「複製」iTunes樣式窗口的見解?具體來說,我正在尋找以下特徵:如何在Windows上覆制iTunes風格的窗口?

1)四捨五入窗口 2)頂部和底部的工具欄 3)四捨五入的文本字段

目前,我正在嘗試了一下跨平臺開發的與皇家Studio和而我發現通過執行在OS X(聲明方法調用HIWindowSetContentBorderThickness或SetContentBorderThickness)的圓角窗的機制,我不能在MSDN如何做類似的事情在Windows中找到。很顯然,蘋果公司在實際編寫用於Windows的iTunes中完成了它。也許他們從頭開始編寫定製控件。 SIDENOTE:我幾年前發現了這篇文章,簡要討論它(http://discuss.joelonsoftware.com/default.asp?joel.3.454369.12),但這幾乎是我能找到的所有東西。

即使我不能確切地重複它,在它的Windows庫可能包含我需要做的是功能性的一些方向「手動」將是很好的。任何進一步的援助將不勝感激。

+0

你只是想要四捨五入的Windows等,或者你想完全複製iTunes?前者很容易;後者需要花費大量的設計和編碼,並且只要蘋果改變了一切,就不會再正確地複製iTunes,所以你可能想挖掘CoreFoundation /等中的私有函數。 Apple與iTunes,QuickTime和Safari綁定的端口並使用這些端口。那麼,您是否(a)Windows窗口API,(b)克隆Apple所做的一切的完整解決方案,或者(c)關於如何獲得Apple私有方法的建議? – abarnert

+0

如果有的話,我會提供建議,但選項「A」就足夠了。 –

回答

1

有做蘋果風格的圓角沒有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混合的邊框,也許是陰影。 (至少這就是蘋果的做法。)Layered Windows API是做到這一點的方法。它允許任意形狀(如果使用UpdateLayeredWindow,即使不需要該功能模擬iTunes),alpha透明度和複雜的命中測試,也可以隨時更改。由於原來的文章是非常過時的,並沒有覆蓋所有的功能,也看到Layered Windows當前文檔,其中有鏈接到引用。

相關問題