VB6表单高度/宽度在命令行生成时被忽略
我们正在尽快脱离VB6,但与此同时,我们已经开始从构建服务器上的命令行构建VB6应用程序 问题:生成服务器有一个基本视频适配器,导致窗体被截断为基本适配器的分辨率,而不是窗体本身的高度和宽度 我们发现的一种解决方法需要进入每个表单的加载事件,并在表单属性窗口中将高度和宽度属性手动设置为观察到的大小 啊 此应用程序中涉及许多表单,更多的应用程序中还将包含更多表单。我想建立一个脚本来处理这个问题 两个问题: 1) 在代码/项目/等中,我在哪里可以找到属性窗口中显示的表单的高度和宽度?搜索*.frm文件不会发现任何赢家;操作*.frx文件并将已知高度或宽度转换为十六进制(然后搜索)也不起作用 2) 除了编辑每一张表格,我还能做些什么吗 提前谢谢VB6表单高度/宽度在命令行生成时被忽略,vb6,adapter,truncation,Vb6,Adapter,Truncation,我们正在尽快脱离VB6,但与此同时,我们已经开始从构建服务器上的命令行构建VB6应用程序 问题:生成服务器有一个基本视频适配器,导致窗体被截断为基本适配器的分辨率,而不是窗体本身的高度和宽度 我们发现的一种解决方法需要进入每个表单的加载事件,并在表单属性窗口中将高度和宽度属性手动设置为观察到的大小 啊 此应用程序中涉及许多表单,更多的应用程序中还将包含更多表单。我想建立一个脚本来处理这个问题 两个问题: 1) 在代码/项目/等中,我在哪里可以找到属性窗口中显示的表单的高度和宽度?搜索*.frm文
Jon基于属性窗口中显示的高度是一个计算值,包括表单的ClientHeight(在.frm中)+边框和标题栏高度。所以ClientHeight可能就是你要找的号码 基于属性窗口中显示的高度是一个计算值,包括表单的ClientHeight(在.frm中)+边框和标题栏高度。所以ClientHeight可能就是你要找的号码 如果在记事本或任何纯文本编辑器中打开.frm文件,则表单大小从顶部开始定义几行: 例如:
ClientHeight = 8445
ClientLeft = 60
ClientTop = 450
ClientWidth = 9960
我不知道您为什么会遇到这个问题-看起来很奇怪-但是如果您的生成服务器导致了问题,那么我看到的唯一选项是(1)更改生成服务器(或者升级视频卡),或者在加载事件中为每个表单写入代码,正如您所提到的,尽管如果在IDE中设置了position->center,这可能会影响表单的居中,但如果这是您想要的结果,请验证表单是否仍然居中。如果在记事本或任何纯文本编辑器中打开.frm文件,则表单大小从顶部开始定义几行: 例如:
ClientHeight = 8445
ClientLeft = 60
ClientTop = 450
ClientWidth = 9960
我不知道您为什么会遇到这个问题-看起来很奇怪-但是如果您的生成服务器导致了问题,那么我看到的唯一选项是(1)更改生成服务器(或者升级视频卡),或者在加载事件中为每个表单写入代码,正如您所提到的,虽然如果在IDE中设置了position->center,这可能会影响表单的居中,但如果这是您想要的结果,请验证表单是否仍然居中。高度和宽度存储在Twips(独立于设备的测量单位)中,因此,必须除以
Screen.twipperpixelx
和Screen.twipperpixely
,才能得到正确的值。对于大多数显示器,这将是15。(使用Onnerd示例中的宽度,9960 twips为664像素。)高度和宽度存储在twips(一种与设备无关的度量单位)中,因此必须除以Screen.twipperpixelx
和Screen.twipperpixely
,才能获得正确的值。对于大多数显示器,这将是15。(使用Onnerd示例中的宽度,9960 twips为664像素。)FRM格式记录在VB6中。它说,高度和宽度存储在树枝上,正如愤怒的吉姆所观察到的。它没有解释ClientHeight和ClientWidth,但正如onerd和cmsjr所说,这是表单内部的大小(没有菜单栏和边框)。如果您有任何将StartupPosition设置为手动的表单,构建服务器也可能正在更改ClientLeft和ClientTop
不要在运行时设置窗体的高度和宽度。其中包括菜单栏和边框,它们在不同版本的窗口或具有不同主题的窗口上具有不同的厚度。所以你会买错尺寸的。改为设置ScaleHeight和ScaleWidth,它们是窗体内部的尺寸。VB6运行时根据这些值计算适当的高度和宽度
最后,只需购买一个新的构建服务器(或新的视频卡)。挥舞着燃烧的火炬和干草叉,带领所有开发人员找到老板,或者冷静地解释PC成本和开发时间成本之间的差异。FRM格式记录在VB6中。它说,高度和宽度存储在树枝上,正如愤怒的吉姆所观察到的。它没有解释ClientHeight和ClientWidth,但正如onerd和cmsjr所说,这是表单内部的大小(没有菜单栏和边框)。如果您有任何将StartupPosition设置为手动的表单,构建服务器也可能正在更改ClientLeft和ClientTop 不要在运行时设置窗体的高度和宽度。其中包括菜单栏和边框,它们在不同版本的窗口或具有不同主题的窗口上具有不同的厚度。所以你会买错尺寸的。改为设置ScaleHeight和ScaleWidth,它们是窗体内部的尺寸。VB6运行时根据这些值计算适当的高度和宽度
最后,只需购买一个新的构建服务器(或新的视频卡)。挥舞着燃烧的火炬和干草叉,带领所有开发人员去找老板,或者冷静地解释一下PC成本和开发时间成本之间的差异。根据他们的DPI设置,情况可能并非如此。因此,使用Screen.twipperpixelx和Screen.twipperpixely(如果需要像素宽度)来获取该数字。然而,在这种情况下,我相信客户的宽度/高度等