谁有可以让程序在不动分辨率下适用的函数,请告知,谢过!

freegzc 2002-12-06 10:56:27
同上!
...全文
28 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ice2water 2002-12-06
  • 打赏
  • 举报
回复
PB窗口控件的自动缩放

功能:
当窗口大小调整时,窗口内的控件包括Tab控件和UserObject控件内的控件将随窗口大小的变化按比例自动进行缩放。

设计说明:
提出问题
目前,为了通用性,大多数PB应用程序是在640x480或800x600显示分辨率模式下设计的,由于种种原因,用户经常使用其它的显示分辨率。当分辨率从640x480调整到800x600或1024x768时,应用窗口相对缩小,为了充分利用屏幕空间而将窗口最大化后,窗口内控件的尺寸、位置是固定的,并且集中到窗口的左上角,既不美观,又浪费了宝贵的屏幕空间。

了解控件
PowerBuilder是一种面向对象的开发工具,除SystemFunctions类外,所有对象均由祖先类PowerObject继承而来。PowerObject有九种子类,窗口内所有控件均继承自PowerObject\GraphicObject\WindowObject,该类派生出两种子类:DrawObject和DragObject。DrawObject类是画图对象,属于该类的控件有:线段、椭圆、矩形和园角矩形,其余控件均属于DragObject类。

由于DrawObject控件在应用程序中使用得比较少,因此,为了简化程序,本软件仅对DragObject控件进行自动缩放。

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

在窗口的open事件中,通过其control[]数组,找出在窗口内放置的全部DragObject类控件(当遇到Tab控件和UserObject控件时,继续通过它们各自的control[]数组,找出其内部的全部DragObject类控件),保存所有找到的控件的原始x、y、width和height属性数据与当前窗口原始宽度和高度的比例值。当窗口大小调整时,在resize事件中,根据保存的各控件的比例值重置控件的x、y、width和height属性,从而实现控件随窗口大小的变化自动按比例放大或缩小。
wonder01 2002-12-06
  • 打赏
  • 举报
回复
这可不是一个简单的事,要自己写代码完成才行,最好的办法是自己编写一些用户对象,写好处理的方法,然后窗口上的所有的控件全部使用用户对象。
archerhe 2002-12-06
  • 打赏
  • 举报
回复
关注
freegzc 2002-12-06
  • 打赏
  • 举报
回复
就是程序是在800*600下做的,要在1024*768等分辨率下也能满屏显示,界面上的控件可以相应放大
realfool 2002-12-06
  • 打赏
  • 举报
回复
看不懂问题,说详细些
wu_07 2002-12-06
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=34909

604

社区成员

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

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