2012-12-03 55 views
3

我們有一個SWT應用程序,它做了一次按下一個按鈕,並打開一個新窗口後,當消耗計算。計算在UI線程中完成(這不是很好,但它是一個遺留應用程序),所以在操作過程中窗口被凍結。通常在完成作業後,新窗口被正確重新繪製。但是,如果應用程序在Windows 7上運行,並使用Windows遠程桌面連接到該計算機,則在完成操作後,新窗口有時會無法正確繪製。發生這種情況時,我做到以下幾點:SWT窗口不是在遠程桌面正確地繪製(Windows 7)中

  • 按計算按鈕
  • 切換到重疊我的應用程序
  • 切換回我的應用程序(其中仍沒有響應)
  • 等待另一扇窗計算完成。
  • 新窗口打開,但內容未正確繪製。

最小化和還原窗口後,重繪做正確。

一個解決方案是在遠程桌面設置來設置最大細節。但是這需要太多的帶寬。

我與SWT版本3.4.1,從XP->窗7以及Windows 7- 3.6.1,4.2.1和和遠程連接>窗7.

enter image description here

+3

你打開新窗口後是否嘗試在父Shell中調用'redraw()'? – Baz

回答

0

嘗試測試使用paintListener,佈局或重繪,而且你必須知道這是一個很好的做法,把重繪放在圖形線程中(我的意思是SWT應用程序的主循環)。

0

我發現了什麼解決我的問題:

右AFER我加了一個shell.redraw()shell.open()打開新的窗口。本來想過早期;-)

BLA

謝謝!

編輯:

不幸的是這並沒有在所有情況下的伎倆。只有在之前切換回我的應用程序標題欄顯示文本「(無響應)」時它才起作用。當標題欄中顯示「(Not responding)」時切換回來,其行爲與以前一樣。

相關問題