4
這是Steam客戶端窗口正在調整大小的屏幕截圖。如何使用winapi實現Steam-like窗口?
Steam的客戶窗口有兩個很酷的功能。
- 自定義窗口,它是非常敏感的。
- 酷玻璃調整的影響,從標準的Windows不同的(認爲這可能是一個副作用密切相關,1)
比方說,我想用WINAPI創建類似的窗口。我該怎麼做?
我不問小部件管理相關的東西,而是關於技術winapi技巧。
這是Steam客戶端窗口正在調整大小的屏幕截圖。如何使用winapi實現Steam-like窗口?
Steam的客戶窗口有兩個很酷的功能。
比方說,我想用WINAPI創建類似的窗口。我該怎麼做?
我不問小部件管理相關的東西,而是關於技術winapi技巧。
基本上,你幾乎可以用你的窗戶做任何事情。但大部分技巧都是手動實現的。
WS_POPUP
窗口時,不要指定WS_BORDER
和WS_CAPTION
。之後,您必須自己繪製邊框和標題。像往常一樣處理WM_ERASEBKGND
和WM_PAINT
消息,繪製背景,菜單。WM_SIZE
消息,處理它,Windows發送一個窗口忽略的消息WM_ERASEBKGND
。因此,系統在尚未充滿新窗口圖像的新窗口框架周圍繪製新的陰影。在這裏,我們得到了這個很酷的玻璃效果:帶有窗戶航空陰影的下層窗戶的舊圖像。您可以嘗試禁用窗口陰影並查看此效果。爲了創建一個自定義縮放邊框,您可能會發現有用的這些功能:LoadCursor
,SetCursor
,MoveWindow
。
爲了繪製自定義邊框,可以使用標準的GDI函數。你也可以創建一些子窗口並委託他們繪圖。這是winapi的基礎知識。