2012-03-08 43 views
0

我有一個窗口是100x100,但我只想繪製50x100並保留右側透明而不使用WS_EX_LAYERED。當啓用自動隱藏功能時,Windows任務欄似乎會執行此操作。根據GetWindowRect,任務欄高度爲40px,但只有2px可見。如何讓窗口大於屏幕上顯示的窗口而不將其設爲分層窗口?裁剪窗口渲染到一個區域

回答

3

SetWindowRgn使您的窗口小於其GetWindowRect

+0

它顯示Windows任務欄不使用SetWindowRgn,可以有另一種方式嗎? – 2012-03-08 18:08:14

+0

使用此工具:http://www.rohitab.com/apimonitor,它看起來像Windows任務欄在自動隱藏時在開始按鈕上使用SetWindowRgn,但不在任務欄上。 – 2012-03-08 18:11:42

0

如果仔細觀察,您會看到任務欄高度爲40像素,但其中38個像素不在屏幕上。

+0

這就是我想問的問題,在多顯示器設置上,這些額外的38像素在第二個屏幕上不可見。 – 2012-03-08 18:49:02

+0

在這種情況下,有一個窗口區域。嘗試一下:調用'GetWindowRgn',看它是否會返回一個矩形,用於剪出第二個監視器。 – 2012-03-08 18:58:44

+0

在我的窗口中調用SetWindowRgn強制DWMWA_NCRENDERING_ENABLED被禁用,並且在刪除該區域之前我無法重新啓用它。有沒有辦法解決這個問題? – 2012-03-08 19:46:47