界面根据不同分辨率自动resize的问题,欢迎大家来讨论~

冷箫轻笛 2003-08-18 09:05:56
如果不同用户需要不同的分辨率,那么程序界面怎么样才能根据实际情况自动调节自身的大小哪?其中最关键的是窗口中的空间可以自动调节其位置的问题。如果在每个窗口resize事件里面加代码是可以实现的,但是那样太繁琐了,不知道还有没有其他的好办法~~~
...全文
73 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bomber2001 2003-08-20
  • 打赏
  • 举报
回复
up
dotnba 2003-08-20
  • 打赏
  • 举报
回复

polugen 2003-08-20
  • 打赏
  • 举报
回复
UP
jdsnhan 2003-08-20
  • 打赏
  • 举报
回复
看看PFC吧,那里有很好的解决方案
albertghb 2003-08-20
  • 打赏
  • 举报
回复
看看这个!
Double ratioW, ratioH
Integer i, ll_controls, zFactor
DragObject ldo

IF oldW <> 0 and oldH <> 0 THEN
ratioW = newwidth / oldW
ratioH = newheight / oldH

ll_controls = UpperBound(this.Control)
FOR i = 1 TO ll_controls
ldo = this.Control[i]
//messagebox("",this.control[i].ClassName()) //display the control's name
ldo.Resize( ldo.Width * ratioW, ldo.Height * ratioH )
ldo.Move( ldo.X * ratioW, ldo.Y * ratioH )
NEXT
END IF

oldW = newWidth
oldH = newHeight
polugen 2003-08-18
  • 打赏
  • 举报
回复
自己写的话累死了,还不如用PFC
brightstar 2003-08-18
  • 打赏
  • 举报
回复
那样写太烦琐了,用PFC的RESIZE对象就相当的简单,你只需要注册每个需要RESIZE的控件并给一定的参数,好象叫u_resize_pfc吧。比较不错的。
冷箫轻笛 2003-08-18
  • 打赏
  • 举报
回复
顶!
klbt 2003-08-18
  • 打赏
  • 举报
回复

PowerBuilder的窗口对象有一个非常重要的属性-control[]数组,存储了窗口内放置的所有控件。通过这个数组,可以访问各控件的属性。但窗口的control[]数组并不存储放在Tab控件和UserObject控件内部的控件,它们存储在Tab控件和UserObject控件各自的control[]数组中。

  在窗口的open事件中,通过其control[]数组,找出在窗口内放置的全部DragObject类控件(当遇到Tab控件和UserObject控件时,继续通过它们各自的control[]数组,找出其内部的全部DragObject类控件),保存所有找到的控件的原始x、y、width和height属性数据与当前窗口原始宽度和高度的比例值。当窗口大小调整时,在resize事件中,根据保存的各控件的比例值重置控件的x、y、width和height属性,从而实现控件随窗口大小的变化自动按比例放大或缩小。

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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