关于分辨率

xgh_rain 2001-12-05 09:04:56
我用opensheet()命令打开一个SHEET作为主界面的背景图,在600X800下可以,但在1024X728下就不行了,这个背景窗口就缩在左上方了!请教各位高手
...全文
53 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamxia 2001-12-05
  • 打赏
  • 举报
回复
窗口居中,不知道对你有没有用


实现运行窗口居中
众所周知,PowerBuilder 7.0在以前的版本中提供了图形化的预览工具,可以很方便的在设计阶段实现窗口居中。但是,到了7.0似乎该项工具被取消了,也没有什么属性来设置,至少我没有找到。每当我们需要将窗口居中的时候只有一点一点地调整它的X,Y值,这一点十分让人头痛。出于无奈,只好通过编程实现。我们只在每个需要居中的窗口的Open事件中写上这些代码就会实现窗口的自动居中。
要实现窗口的自动居中,我们可以用函数Move()来实现。但是,由于我们开发出来的应用程序往往会在不同的设置环境中运行,虽然一般情况下是由我们为用户配置好的,但我们总不能保证用户显示器的设置模式不会改变。所幸的是,PB为我们提供了环境对象Environment,该对象其实是一个系统结构,其中保存了PB应用程序的运行平台信息,例如,代码集,CPU类型等。其中当然会有我们需要的屏幕宽和高。为了得到该结构我们可以用函数GetEnvironment()。该函数的作用是得到关于操作系统,处理器和屏幕的系统信息。具体用法如下:
Environment my_system
Integer li_ScreenWidth, li_ScreenHeight

GetEnvironment(my_system)

// 得到屏幕的总宽度和长度
li_ScreenWidth = PixelsToUnits(my_system.ScreenWidth, XPixelsToUnits!)
li_ScreenHeight = PixelsToUnits(my_system.ScreenHeight, XPixelsToUnits!)
// 函数PixelsToUnits()的作用是将屏幕的像数转换成PowerBuilder使用的单位,因为像数通常不用于方形中,具体用法请参见函数手册。

然后就可以用Move()来实现窗口居中。
this.Move((li_ScreenWidth - this.Width)/2, &
(li_ScreenHeight - this.Height)/2 )

1,077

社区成员

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

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