数据窗口里字段都画好了 1024 768分辨率下的,拿到1248 1000分辨率下 窗口右边会出空位
改自适应的话,有简单点方法么。。
------解决方案--------------------
计算宽度,然后计算需要调整的比例,然后用modify调整宽度
如果想简单的话,可以用缩放来实现,比较简单
------解决方案--------------------
PowerBuilder在数据库系统开发中,以其独特的、强大的数据窗口功能,得到了广大程序员的喜爱,但用户在使用中,却时常发现系统中的窗口要么太大,部分内容在屏幕上显示不下,要么窗口过小,在屏幕中显得不够美观,造成这种情况的原因是程序员和用户所使用计算机的屏幕分辨率不一致。本文介绍了如何使PB中的窗口大小能根据屏幕分辨率自动调整,同时保持窗口中的控件的相对位置、大小不变。
1、定义全局变量oldheight、newheight、oldwidth、newwidth,分别保存程序员和用户屏幕分辨率的高度和宽度,在Application的Open脚本中加入下列语句:
Environment en //定义环境变量
GetEnvironment(en) //获取环境变量值
newheight = en.ScreenHeight //取当前屏幕分辨率的高度
newwidth = en.ScreenWidth //取当前屏幕分辨率的宽度
oldheight = 480 //假设程序员屏幕分辨率为640*480
oldwidth = 640
2、在窗口的Open事件中分别调整窗口、控件的X、Y、Height、Width,保证窗口进行自适应调整,假设窗口中有一个按钮控件cb_1,脚本如下所示:
//调整窗口的坐标和大小
This.y = This.y * newheight / oldheight
This.x = This.x * newwidth / oldwidth
This.width = This.width * newwidth / oldwidth
This.height = This.height * newheight / oldheight
//调整控件的坐标和大小
Cb_1.y = Cb_1.y * newheight / oldheight
Cb_1.x = Cb_1.x * newwidth / oldwidth
Cb_1.width = Cb_1.width * newwidth / oldwidth
Cb_1.height = Cb_1.height * newheight / oldheight
如果窗口中有多个控件,可对每个控件做同样处理。通过添加上述脚本,就实现了窗口在不同分辨率下的自适应调整。本程序在Pb6.5、Windows 2000下运行通过。