2011-10-24 83 views
3

我在窗體上的內容出現問題時,在64位窗口(如Windows Server 2003或2008)中運行時未正確更新。有一個簡短的視頻可以在screencast上進行說明。如何在64位窗口上更新窗體大小?

當我調整主窗口的內容不重新繪製。但如果我更換小分路器,它會重新粉刷。而且一切都在32位Windows上完美運行。 我還沒有爲此做過任何OnResize事件。

任何想法?

編輯:是的,可執行文件是32位。它只是64位的Windows操作系統。

+0

沒有理由在64位操作系統上表現不同。我從未在64位操作系統上看到這樣的問題。 –

+0

在其中一個使用的組件中,消息處理程序(WM_SIZE,...)中的某處可能是錯誤的轉換(32/64位不匹配)? –

+0

@ulrich它是d2007,所以是一個32位的過程 –

回答

8

這是由多個嵌套控件/窗口引起的。 64位Windows的堆棧大小比32位小。如果存在全局的WH_CALLWNDPROC掛鉤,則這個數字會變得更小。消息事件處理WM_SIZE獲得Windows內核吃掉的堆棧溢出。請參閱here和修復here。同樣的問題請參閱here

PS:WinForms也遭受sameproblem

+0

第一個答案似乎是真實的,謝謝。我們將對此進行調查。 –

+0

已驗證。它工作正常:-) –