pb中自动调整窗口

pb中自动调整窗口

ID:35478265

大小:59.80 KB

页数:10页

时间:2019-03-25

pb中自动调整窗口_第1页
pb中自动调整窗口_第2页
pb中自动调整窗口_第3页
pb中自动调整窗口_第4页
pb中自动调整窗口_第5页
资源描述:

《pb中自动调整窗口》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、pb中自动调整窗口在一定的屏幕分辨率下开发的应用程序到别的计算机上运行时,很可能遇到和开发环境中的分辨率不同的情况,这时要保证窗口界面仍然显示居中,就得在开发时考虑这个问题。解决方法是在窗口打开时判断屏幕的分辨率,根据分辨率来决定窗口显示的位置。要用到两个单位换算函数和一个获取运行环境信息的函数。在PowerBuilder中所有尺度都是用PowerBuilder单位(PBU)计量的,惟一例外是Window和DataWindow画板网格尺寸,这是用像素计量。PowerBuilder中的计量使用和Windows中相同的技术,都是基于系统字体。不同的是,Windows中采用系统字体宽度的1/4和

2、高度的1/8,而PowerBuilder中采用系统字体宽度的1/32和高度的1/64,从而可以提供比Windows中更高的分辨率。但是,用户在PowerBuilder应用程序中调用外部函数来获取对象的尺寸或位置时就应该进行相应的转换。好在PowerBuilder本身也提供了进行单位换算的函数,所以应该尽量使用PowerBuilder本身的单位换算函数。函数UnitsToPixels()用于将PBU值换算成像素值。它的语法格式是:UnitsToPixels(units,type)值;Type是-一个ConvertType类型的枚举值,可以是:XUnitsToPixels!表示要转换成水平方向

3、上的像素值;YUnitsToPixels!表示要转换成垂直方向上的像素值。函数成功执行将返回转换后的像素值,如果执行错误,则返回如果有参数为NULL,则返回NULL。函数PixelsToUnits用于将像素值换算成PBU值。它的语法格式是:PixelsToUnits(pixels,type)各个参数的意义和上面函数的完全相同,执行的功能相反,是将指定像素值转换成指定方向上的PBU值。因为所有窗口在打开时都有居中问题,所以可以使用全局函数解决这个问题,以便在应用中的所有窗口都可以调用该函数。该函数的脚本如下:/广****************************************

4、***************************//*功能:将窗口移到屏幕的中央//*参数1:aw_window要处理的窗口//*返冋值:(none)//*调用举例:gf_window_center(w_pay_mode)//将窗口置于屏幕的中央************************EnvironmeritleenvIntli_ScreenHeight,li_ScreenWidthLongll_posx,ll_posyGetEnvironment(le_env)li_ScreenHeight=PixelsToUnits(le_env.ScreenHeight,YPixels

5、ToUnits!)Ii_screenwidth=PixelsToUnits(le_env.ScreenWidth,XPixelsToUnits!)果窗口超宽〃如Ifawwindow.width>liScreenWidthThenll_posx=1Elsell_posx=(li_ScreenWidth・aw_window.Width)/2EndIf//Ifaw_window.height>li_ScreenHeightThen如果窗口超咼Il_posy=1Elsell_posy=(li_ScreenHeight・aw_window.Height)/2EndIfaw_window.Move(l

6、l_posx,ll_posy)上面的脚本用函数GetEnvironment获取当前的环境信息,并将其成员变量ScreenWidth和ScreenHeight转换成PBU值,然后减去当前窗口的宽(高),取差值的1/2即为窗口居中时的起始坐标。有时窗口的位置耍恢复到用户上次使用时的情况,可以借助于ini文件。在窗口关闭时将窗口的位置信息保存在一个特定的ini文件中,当窗口打开时再将这些位置信息读出并用来设置窗口的位置。具体可以参考前面MDI—章中介绍的两个函数wf_saveToolBar和wfresToreToolBar的编程。当用户对窗口的大小进行调整时,窗口屮的控件也应该相应地调整其大小和

7、位置,这样才能保证整个窗口中控件的布局相对不动。可以在调整窗口大小的同时调整窗口中的控件及其相对位置,可以在窗口的Resize事件中编写脚本。首先定义如下实例变量:Intii_width,ii_height在窗口的Open事件中:ii_width=This.Widthii_height=This.Height在窗口的Resize事件中:Intli_valueDragObjectlw_objForIi_value=1ToU

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。