2010-10-31 20 views
1

我想創建一個屏幕顯示,即出現在顯示的其他所有內容之上的文本或簡單圖形。我知道在Linux中這是通過xosd實現的,但是您如何在Windows中執行此操作? (假設XP和,如果它可以更容易,而且我也有興趣知道,如果該方法是在Vista不同/ 7)如何在Windows中生成OSD?

+0

只顯示一個非激活的始終在窗口上,或者你想直接在屏幕表面上繪製文本和簡單的圖形就足夠了嗎? – Anders 2010-10-31 09:49:58

+0

直接我猜 - 用戶不應該能夠與它進行交互。 – ZoFreX 2010-10-31 18:41:20

回答

2

您可以使用NativeWindow做到這一點的描述here

本文介紹瞭如何使用 動畫/半透明效果創建 OSD窗口,在 C#,使用NativeWindow類。

+1

我不認爲ZoFreX正在尋找C#代碼,但該文章確實使用了所有正確的Win32 API,因此在本機代碼中複製效果不應該很難。 – 2010-11-01 14:03:34

+1

@Ben - 語言沒有被指定,但點了 - 謝謝 – 2010-11-01 14:24:37

+0

是的,代碼不是解釋窗口需要什麼屬性,以及爲什麼。那篇文章包含了我正在尋找的內容,謝謝! – ZoFreX 2010-11-01 22:49:43

0

您可以撥打SetForeGroundWindow

+1

OSD通常不是活動窗口,除此之外,您不能只調用SetForeGroundWindow,因爲只有前臺進程才允許這樣做。 – Anders 2010-10-31 12:09:37

1

使用WS_EX_LAYERED風格使窗口透明,SetWindowPos(..., HWND_TOPMOST, ...)使其浮在其他窗口之上。

相關問題