- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
虚基类自适应屏幕分辨率的基类窗口
虚基类:自适应屏幕分辨率的基类窗口
疯狂代码 http://CrazyC/ ĵ http:/CrazyC/PowerBuilder/Article42206.html
做个自适应屏幕分辨率窗口当成个应用中所有窗体基类这样整个可以很好适应屏幕分辨率改变实现原理很
简单就是在窗口打开时候去RESIZE窗口和窗口中Control控件大小位置参看下面源代码可以很容易看懂
1新建个窗口
为窗口写个f_resize()大部分工作就在这里
无输入参数
返回值为整形
environment env
eger ii_ScreenWidth,ii_ScreenHeight
double WRadio,HRadio,Radio
eger ii_WinBolderWidth,ii_WinBolderHeight
getenvironment(env)
ii_WinBolderWidth=this.width - this.WorkSpaceWidth//取得窗体边框宽度
ii_WinBolderHeight=this.height - this.WorkSpaceHeight
ii_ScreenWidth=env.screenwidth
ii_ScreenHeight=env.screenheight
//compute the radio that need be resize
WRadio=ii_ScreenWidth/800 //标准认为屏幕分辨率为800*600
HRadio=ii_ScreenHeight/600//计算出屏幕相对800*600分辨率变化量
Radio=Min(WRadio,HRadio)
Radio=1.0 then // the screen is default 800*600
0
end
this.hide
this.width=(this.width - ii_WinBolderWidth)*Radio + ii_WinBolderWidth
this.height=(this.height - ii_WinBolderHeight)*Radio + ii_WinBolderHeight
eger i
dragobject temp//用于取各种Control控件
for i=1 to upperbound(this.control)
temp=this.control[i]//调整大小位置
temp.width=temp.width*Radio
temp.x=temp.x*Radio
temp.y=temp.y*Radio
temp.Height=temp.Height*Radio
choose typeof(temp)
; ; tab!
; ; ;tab mtab
; ; ;mtab=temp
; ; ;mtab.textsize = ; ;mtab.textsize*Radio//设置字体
; ; commandbutton!
; ; ;commandbutton cb
; ; ;cb = temp
; ; ;cb.textsize = ; ;cb.textsize*Radio
; ; singlelineedit!
; ; ;singlelineedit sle
; ; ;sle = temp
; ; ;sle.textsize=sle.textsize*Radio
; ; editmask!
; ; ;editmask em
; ; ;em = temp
; ; ;em.textsize = ; ;em.textsize*Radio
; ;
; ; text!
; ; ;text st
; ; ;st = temp
; ; ;st.textsize = st.textsize*Radio
; ; datawindow! // datawindows get zoomed
; ; ;datawindow dw
; ; ;dw = temp
; ; ;dw.Object.DataWindow.zoom = ((Radio*100))//注意DATAWINDOW和其它Control控件区别
; ; picturebutton!
; ; ;picturebutton pb
; ; ;p
文档评论(0)