如何在64位窗口上更新调整大小的表单?

时间:2011-10-24 12:29:29

标签: delphi 64-bit delphi-2007

我遇到问题,在Windows Server 2003或2008等64位窗口中运行时,表单上的内容更新不正确。有一个简短的视频可以在screencast说明这一点。

当我调整主窗口大小时,内容不会重新绘制。但如果我更换小分割器,它会重新粉刷。在32位Windows上,一切都很完美。 我没有为此做过任何OnResize事件。

有什么想法吗?

编辑:是的,可执行文件是32位。它只是Windows操作系统的64位。

1 个答案:

答案 0 :(得分:8)

这是由于必须有许多嵌套控件/窗口引起的。 64位Windows的堆栈大小小于32位。如果存在全局WH_CALLWNDPROC挂钩,则会变得更小。 WM_SIZE消息事件处理获取Windows内核吃掉的堆栈溢出。请参阅here和修正here。另请参阅here了解同一问题。

PS:WinForms也受same problem

的影响