欢迎来到天天文库
浏览记录
ID:38423604
大小:29.00 KB
页数:3页
时间:2019-06-12
《自适应屏幕分辨率的基类窗口》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、自适应屏幕分辨率的基类窗口(pb)-数据库专栏,其他相关做一个自适应屏幕分辨率的窗口,当成一个应用程序中所有窗体的基类。这样整个程序可以很好的适应屏幕分辨率的改变。实现的原理很简单,就是在窗口打开的时候去resize窗口和窗口中的控件大小,位置。参看下面的源代码,可以很容易的看懂。1。新建一个窗口。为窗口写一个函数f_resize()大部分工作就在这里。无输入参数返回值为整形:environmentenvintegerii_screenwidth,ii_screenheightdoublewradio,hradio,r
2、adiointegerii_winbolderwidth,ii_winbolderheightgetenvironment(env)ii_winbolderwidth=this.width-this.workspacewidth()//取得窗体的边框宽度ii_winbolderheight=this.height-this.workspaceheight()ii_screenwidth=env.screenwidthii_screenheight=env.screenheight//computetheradiotha
3、tneedberesizewradio=ii_screenwidth/800//标准认为屏幕分辨率为800*600hradio=ii_screenheight/600//计算出屏幕相对800*600分辨率的变化量radio=min(wradio,hradio)ifradio=1.0then//ifthescreenisdefault800*600 return0endifthis.hide()this.width=(this.width-ii_winbolderwidth)*radio+ii_winbolderwidt
4、hthis.height=(this.height-ii_winbolderheight)*radio+ii_winbolderheightintegeridragobjecttemp//用于取各种控件fori=1toupperbound(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
5、choosecasetypeof(temp) casetab! tabmtab mtab=temp mtab.textsize= mtab.textsize*radio//设置字体 casecommandbutton! commandbuttoncb cb=temp cb.textsize= cb.textsize*radio casesinglelineedit! singlelineeditsle sle=temp sle.textsize=sle.textsize*radio caseeditm
6、ask! editmaskem em=temp em.textsize= em.textsize*radio casestatictext! statictextst st=temp st.textsize=st.textsize*radio casedatawindow!//datawindowsgetzoomed datawindowdw dw=temp dw.object.datawindow.zoom=string(int(radio*100))//注意datawindow与其它控件的不同
7、casepicturebutton! picturebuttonpb pb=temp pb.textsize= pb.textsize*radio casecheckbox! checkboxcbx cbx=temp cbx.textsize= cbx.textsize*radio casedropdownlistbox! dropdownlistboxddlb ddlb=temp ddlb.textsize= ddlb.textsize*radio casegroupbox! groupboxgb
8、 gb=temp gb.textsize= gb.textsize*radio caselistbox! listboxlb lb=temp lb.textsize = lb.textsize*radio casemultilineedit! multilineeditmle mle=temp mle.textsi
此文档下载收益归作者所有