我遇到了VCL樣式的一個非常奇怪的問題。有時,無論是以預定義的樣式啓動程序,還是稍後設置一個程序,都會消失一個或一些程序窗口。德爾福XE2 VCL樣式,奇怪的小故障,窗口不可見
這種情況非常隨機,可能每10-20次發生一次,而不是在任何特定的窗口中。我有兩種形式在運行時打開,有時是一種,有時是另一種。
發生這種情況時,我檢查一些屬性,而窗口不可見,Visible屬性爲true,窗口邊界是正確的;如果我試圖通過Aero DWM實時縮略圖顯示窗口,它也是空的;如果我捕獲窗口DC,但是我得到一個帶有窗口的位圖,就好像它正常顯示(並且樣式已經應用)。
它不顯示任何錯誤,沒有警告,沒有例外..沒有什麼似乎錯了,只是窗口不存在。如果我將鼠標懸停在任務欄按鈕上以查看預覽,則會顯示該框,但它是空的。
任何想法要檢查什麼?
編輯:調用RecreateWnd將問題解決爲臨時解決方法,但是,它可能會再次失敗。
胡亂猜測,它需要RecreatWnd。如果您點擊任務欄中顯示的預覽,會發生什麼情況? – 2012-04-04 18:22:43
什麼都沒有。該程序變爲活動狀態,但不顯示任何內容。如果我切換到另一種樣式(通過托盤圖標菜單),它會再次顯示。看到這裏,通過任務欄預覽顯示每個表單不同的兩種情況:http://i.imgur.com/WT7KK.png http://i.imgur.com/gjClr.png另外,如果我做了一個bitblt在DC上,它捕捉正確應用樣式的窗口。 – hikari 2012-04-04 22:04:10
調用RecreateWnd修復了這個問題,我將在啓動時調用此方法,並將樣式更改爲臨時解決方法。 – hikari 2012-04-05 00:33:29