免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3216 | 回复: 0
打印 上一主题 下一主题

PowerBuilder实用技巧--实现运行窗口居中 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-12 13:06 |只看该作者 |倒序浏览
一、实现运行窗口居中

  众所周知,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 )
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP