3

我有一个相当大的 VB6 应用程序,它具有在 MDI 应用程序的子窗体之间拖放控件的功能。问题是拖动操作期间的性能非常糟糕。您可以在拖动时看到元素重绘(缓慢地)。

我第一次遇到这个问题是在 Windows 7 中,经过一些研究得出结论,这是与 Aero 界面的兼容性问题。我可以通过关闭 Aero 效果来解决它。现在我使用的是 Windows 8,问题又回来了,但是,这不再是要禁用的 Aero。我尝试停止 dwm.exe 进程,但这只是在 Windows 8 中重新启动,我认为这是因为它需要愚蠢的“现代用户界面”界面。

我计划将来迁移到 .NET,但这将是一项艰巨的工作。现在我需要一个解决方法来让这个拖动问题在 Windows 8 中工作。

4

2 回答 2

1

我们找到了一种在 Windows 8 中运行良好的解决方法。将控件设置为在拖动时使用图标可以解决性能问题。这是通过设置 DragIcon 属性来完成的。如果没有设置 DragIcon(在我们的例子中),默认行为是在拖动时显示控件的边框。在启用 Aero 的桌面中,这个边界的绘制速度非常慢。现在它按预期执行并且看起来也好一点。

于 2013-02-04T15:05:06.820 回答
0

这是一个糟糕的解决方案,但它可能只对您有用。进入 EXE 的属性并选择兼容性选项卡。将兼容模式设置为 WinXP。尝试弄乱以禁用开头的复选框...通常这些的某种组合通常可以解决问题。同样,这不是一个很好的解决方案。

于 2013-02-01T19:35:19.380 回答