相同的分辨率,界面出现变形,有人碰到过吗

章宏 2018-07-30 04:52:02
两台机器,设置了相同的分辨率,但是,界面会出现变形,好像文本框的高度增加了,导致2行文本框之间的空白区域被覆盖了,见图2-变形 图1-正常,
文本框是动态装载的,位置,高度 都是用定义的值*屏幕像素单位动态调整的
Load TXT_00(.Fields("IDS"))
Set NewText = TXT_00(.Fields("IDS"))
NewText.Top = TongForm_GetAttrValue(Item_NSKW & "F_T_Top") * Screen.TwipsPerPixelY
NewText.Height = TongForm_GetAttrValue(Item_NSKW & "F_T_Height") * Screen.TwipsPerPixelY
...全文
582 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
章宏 2018-08-13
  • 打赏
  • 举报
回复
测试通过,谢谢诸位,问题和字体相关,但是原因不明,目前通过调整[设置字体]及[文本框高度]代码的执行顺序,该问题得到解决。
舉杯邀明月 2018-08-13
  • 打赏
  • 举报
回复
引用 22 楼 weixin_42835291 的回复:
测试通过,谢谢诸位,问题和字体相关,但是原因不明,目前通过调整[设置字体]及[文本框高度]代码的执行顺序,该问题得到解决。

估计先设置控件字体、然后再设置控件高度,就没问题了吧。
章宏 2018-08-06
  • 打赏
  • 举报
回复
谢谢诸位集思广益,还在等待客户测试反馈
章宏 2018-08-02
  • 打赏
  • 举报
回复
我感觉那台异常的机器,还是宋体设置不成功造成的
txt空间装载时,本来就是重新指定字体的,先调整位置、尺寸,后调整字体,
现在做个尝试,先调整字体,后调整尺寸位置
另外数据选择处理部分,2行挤到1行,发现是原来高度调整的部分有问题,这次做了相应的调整,希望2个问题可以一次过
章宏 2018-08-02
  • 打赏
  • 举报
回复
所有空间都是动态创建、装载的,依次为Tab、Frame、Txt
舉杯邀明月 2018-08-02
  • 打赏
  • 举报
回复
真是有点奇怪。 

是不是只有这一个选项卡出现异常?
我看你的图中,好像是把控件按不同的“卡”,放在不同的Frame控件中的?
我还有一个比较“偏门”的方法,你可以尝试下:
  就是把你那个“Frame容器”的字体设置为界面中不会用到的字体(比如Symbol),
  而“容器”内的其它控件,按相应的需要的字体进行设置。
 如果你的“那一组控件”是用SSTab直接作为容器的,那么你就得调整一下,
  把界面中的那些控件放到一个Frame控件(或Picture控件)中,
  为了“不影响界面外观”,把容器设置为平面、无边框,
   再把背景色为“系统→按钮表面”,或者其它需要的颜色。
然后编译成EXE运行来看一下,发现“容器内”的某控件字体“不是宋体”了,
  你需要在它的“属性”中给它指定一下字体为宋体。
  比如ListView控件,不设置的话,IDE中可能是宋体,
  但编译后就不是宋体、而是“容器”的字体了。
  类似这种控件,你就必须要在它的“属性”中强制指定一下。
脆皮大雪糕 2018-08-02
  • 打赏
  • 举报
回复
安装包里带上你要用的字体呗。
舉杯邀明月 2018-08-02
  • 打赏
  • 举报
回复
引用 16 楼 weixin_42864416 的回复:
这是VB编程中常碰到的问题,关键在于两台电脑的操作系统版本不一样。
所以,通用程序要在不同版本系统的机器上都试试才行。

若要说这种“兼容”,无论用什么语言编程,都会遇到吧!
并不是只有VB才会这样。
课余 2018-08-02
  • 打赏
  • 举报
回复
这是VB编程中常碰到的问题,关键在于两台电脑的操作系统版本不一样。
所以,通用程序要在不同版本系统的机器上都试试才行。
舉杯邀明月 2018-08-02
  • 打赏
  • 举报
回复
还有,前段时间我也有个动态创建控件(用API创建)的应用,
 印象中,它的控件hDC的默认字体,不知道是个什么字体,
 看起来是一种变宽的、加粗的字体,相同的字号下,它的高度要比宋体高一点儿。

刚才我找测试程序试了一下,在默认情况下,
 这个字体/字号的高度,行高是14像素;而设置为宋体后,行高只有12像素。
按“宋体”的显示结果来看,是“小五”的字号。
它也会把一些不支持的文字显示成短竖线,但“中文引号”显示是正常的。
下图左边就是“默认字体”的效果,右边是设置为“宋体”之后的显示效果。
舉杯邀明月 2018-08-02
  • 打赏
  • 举报
回复
引用 13 楼 weixin_42835291 的回复:
我感觉那台异常的机器,还是宋体设置不成功造成的
txt空间装载时,本来就是重新指定字体的,先调整位置、尺寸,后调整字体,
现在做个尝试,先调整字体,后调整尺寸位置
另外数据选择处理部分,2行挤到1行,发现是原来高度调整的部分有问题,这次做了相应的调整,希望2个问题可以一次过

都是动态创建?干吗要动态创建呢,难道你的不是VB程序? 
你上面9楼的测试程序贴图,系统“异常”的,设置为宋体不也是显示成功的吗?

你那个“列表框高度”,是按2行宋体字的需求高度,给出的固定值吧!
当控件字体不是宋体、单行高度比宋体高的时候,它就不能显示为2行,也就变成1行了。
其实如果你是给的“固定高度”,你可以按“比3行宋体略小的值”给定,这样它可能始终保持是2行。
章宏 2018-08-01
  • 打赏
  • 举报
回复
分辨率也一样,但是异常的机器上 文本框的高度,看起来比正常的高出一些,导致中间的空行都被遮住了
章宏 2018-08-01
  • 打赏
  • 举报
回复

我原以为是异常的机器没有宋体,因为在设置字体时,如果不存在指定字体,会默认设置为 MS Scan Serif,但实际测试后发现设置宋体是成功的,这就奇怪了
章宏 2018-07-31
  • 打赏
  • 举报
回复
请问楼上,还有其他可能吗,或者是我理解错误,没测试到点上
章宏 2018-07-31
  • 打赏
  • 举报
回复
谢谢楼上,我试着改了我本机的默认字体大小,然后依次重新创建了窗体,但是全部显示正常,如图:

舉杯邀明月 2018-07-31
  • 打赏
  • 举报
回复
系统默认字体的问题,我还真不知道从哪可以处理。


你说的那些“正常”的系统,应该双引号能正常显示的吧?
章宏 2018-07-31
  • 打赏
  • 举报
回复
又试验了其他英文版的Win7,都正常,区域与语言也都设置了 chinese (simplifred PRC),分辨率也都一样 1280*1024,只有这一台机器会变形,奇怪啊
章宏 2018-07-31
  • 打赏
  • 举报
回复
变形的那台机器是英文版的win7,确实双引号会显示为| ,有什么解决办法吗?
舉杯邀明月 2018-07-31
  • 打赏
  • 举报
回复
我以前接触过不少的 WinXP系统,象中文双引号、省略号这些,
有一些系统中是正常显示的,有一些系统中就变成1个“短竖线”了。
舉杯邀明月 2018-07-31
  • 打赏
  • 举报
回复
引用 3 楼 weixin_42835291 的回复:
请问楼上,还有其他可能吗,或者是我理解错误,没测试到点上


自己看吧……
可以弄个简单的VB6程序测试一下就知道了。
新建标准EXE工程,画几个控件,除了“文字”之外不要改其它属性。
编译后运行,如果标点符号能显示正常,那么就应该是你“图1”的状态;
  标点显示不正常的,可能就是你的“图2”状态了。

那个是“三维物体”的系统字体,无法更改的。 
加载更多回复(1)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧