2014-03-04 40 views
0

我使用下面的握住手柄,以顯示/隱藏窗口:顯示便籤的膠粘物使用的ShowWindow原因「洞」

[DllImport("user32.dll")] private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); 

// Win32 API Constants for ShowWindowAsync() 
private const int SW_HIDE = 0; 
private const int SW_SHOW = 5; 

ShowWindowAsync(_hWnd, SW_SHOW); //Show Window 
ShowWindowAsync(_hWnd, SW_HIDE); //Hide Window 

當我隱藏便籤,然後再次顯示它造成視覺「洞「,我必須關閉粘滯便箋並重新打開。

這裏的問題的截圖: enter image description here

我相信問題是特定於粘滯便箋。
我不知道爲什麼會發生,但我想以某種方式解決它..

我想過檢查窗口是否粘滯便箋,如果它然後打開/關閉它而不是顯示/隱藏將採取行動相同,但我不太喜歡它 - 感覺哈克。

+0

粘滯便箋程序也可能隱藏富文本框。您可能想要枚舉子富文本框並顯示。你可以使用Spy ++知道發生了什麼。 –

+0

但我使用相同的命令來隱藏和顯示它們。它怎麼可能隱藏所有,但顯示部分窗口? – Ron

+0

該程序可能被設計爲顯示窗口需要額外的工作,只能由程序本身完成。 (例如,重新創建一個DirectX表面。) –

回答

0

ShowWindowAsync()改爲ShowWindow()解決了這個問題。

我不知道爲什麼ShowWindowAsync()會導致這個問題,我希望在這裏有一個教育的答案,但現在,只要我的問題解決了,我很高興。