VB6形式切断工具栏在运行时在Windows 10年7月8日,但不是XP

问题描述:

Image depicts the toolbar truncated on the right by the host form's right edge.VB6形式切断工具栏在运行时在Windows 10年7月8日,但不是XP

我有一个Visual Basic 6.0应用程序,它具有承载工具栏几种形式。其中一种形式(如图中所示)通过其右侧边缘右侧的工具栏剪切或截断显示。应该有一个'粘贴'按钮也显示。

在设计时窗体显示正确。在运行时,它也可以在Windows XP上正确显示,但不会在7/8/10上显示。我正在使用运行XP Professional 32位开发的VMWare VM。值得注意的属性包括:表单可重新调整大小;工具栏不换行。我曾尝试在'Load'事件中手动设置窗体宽度,但没有任何效果。除此问题之外,在任何版本的Windows上运行此Visual Basic 6.0应用程序都没有问题。任何帮助将不胜感激。谢谢。

+4

很难说,但这可能是一个高DPI问题。 – Bob77

+0

如果您在Windows 7/8上以[兼容模式](https://support.microsoft.com/en-us/help/15078/windows-make-older-programs-compatible)运行exe,它会改变什么吗?/10? – GSerg

+0

如果您要最大化表单,或手动调整它的大小以使其更宽,可以告诉我们会发生什么情况?它看起来像我,你需要更小的工具栏图形或更小的工具栏按钮。我错过了什么? – tcarvin

为什么使用Windows XP作为开发环境? 您应该始终使用最新版本的Windows(Windows 10)以避免此问题。 不应该将Windows XP用作开发环境,因为它与Windows版本(Vista和更高版本)太不同了。只有在所有版本的Windows中使用经典主题才会有意义,否则您会发现许多差异,因为系统对象测量因主题而异。只有经典主题是所有Windows版本上的常量。

我的解决方案示例:在我的应用程序中,我使用保存/加载例程来管理表单大小和位置(我使用简单的用户INI文件)。所以,当用户更改它们时将保存在INI文件中,下一个会话将再次加载相同大小的e位置。

但是,这个问题用大小为的形式,对于固定的形式没有。

最后,我建议你创建一个Windows 10(VMWare或VirtualBox),安装所有的VB6环境,并用它来开发。 但是,当然,如果您的主机系统已经是Windowx 10,那么直接使用它。