首頁>Club>
8
回覆列表
  • 1 # 使用者4757351890007

    視窗要實現半透明。首先這個視窗控制代碼得有GWL_EXSTYLE這個屬性。見 Layered Windows 說明。

    如果建立的時候就沒有指定這個引數,或者不是自己的視窗,屬於不可控的情況。那麼就要手動擼上去這個屬性才能修改整體透明度。

    具體實現步驟如下:

    一、找到要修改的目標視窗控制代碼

    FindWindowEx可以實現這個功能.

    使用這個API配合視窗類名和標題,可以拿到具體的某個視窗的控制代碼。

    以Win10下的資源管理器為例。按CabinetWClass這個類名去找就行了。

    如果不知道怎麼檢視視窗資訊,可以參考我這個回答裡的頭一個步驟

    胡大頭:如何給網易雲音樂加一個快捷鍵?

    二、為窗體附加屬性

    首先使用 GetWindowLong 獲取視窗的ExStyle.

    然後位或運算一下

    接著再用 SetWindowLong 把屬性寫回去

    三、設定透明度

    現在,準備工具已經就緒,你已經獲取到視窗的控制代碼,也設定好了視窗的WS_EX_LAYERED屬性。只需要使用SetLayeredWindowAttributes 設定透明度就可以了。

    需要注意的是第三個引數 bAlpha 。這個引數就是是你想要設定的透明度。取值範圍0-255.

    255就是完全不透明,而0則是完全透明。

    最終效果就是這樣了

    我寫都寫完了,點進去一看,發現題主不是程式猿。這TM就很尷尬了。

    找工具的話,鑑於這幾個API自古有之,Vitrite之類的上古視窗透明度工具應該還能用。

  • 中秋節和大豐收的關聯?
  • 為什麼一陣惱人的秋風原唱?