爆炸!~,超必杀!~ 关于800*600中开发的程序,移植到1024*768下面的整体放大处理。请问tab上面的东西怎么处理!

mnsiii 2005-03-22 03:05:11
如题,大部分控件都可以通过程序放大,这个我已经实现了,我不是用的类库。用程序控制的

tab页也可以放大,但是tab上的空间就不能放大了,请问怎么办,还有就是菜单,toolbar也不能放大

请问该怎么做,我原来的程序如下,我是从faq上抄来的:

environment env
int ii_Screenwidth,ii_Screenheight
double WRadio,HRadio,Radio
int ii_WinBolderwidth,ii_WinBolderheight
getenvironment(env)
ii_WinBolderwidth=arwin.width - arwin.workspacewidth()//取得窗体边框的宽度
ii_WinBolderheight=arwin.height - arwin.workspaceheight()
ii_Screenwidth=env.screenwidth
ii_Screenheight=env.screenheight
//************************************************************************//
//获取需要调整的计算机分辨率**********************************************//
WRadio=ii_Screenwidth/arx //标准认为屏幕分辨率为arx*ary
HRadio=ii_Screenheight/ary//计算出屏幕相对arx*ary分辨率的变化
Radio=min(WRadio,HRadio)
if Radio=1.0 then //如果分辨率是arx*ary
return 0
end if
if (arwin.WindowType=MDIHelp!) or (arwin.WindowType=MDI!) then
arwin.resize(arwin.workspacewidth()*Radio,arwin.workspaceheight()*Radio)
return 0
else
arwin.hide()
arwin.width=(arwin.width - ii_WinBolderwidth)*Radio + ii_WinBolderwidth
arwin.height=(arwin.height - ii_WinBolderheight)*Radio + ii_WinBolderheight
int i
for i=1 to upperbound(arwin.control[])
//调整控件大小和位置
choose case typeof(arwin.control[i])
case tab!
tab mtab
mtab=arwin.control[i]
mtab.resize(mtab.width*Radio,mtab.height*Radio)
mtab.move(mtab.x*Radio,mtab.y*Radio)
mtab.textsize=mtab.textsize*Radio//设置字体大小
case commandbutton!
commandbutton cb
cb=arwin.control[i]
cb.resize(cb.width*Radio,cb.height*Radio)
cb.move(cb.x*Radio,cb.y*Radio)
cb.textsize=cb.textsize*Radio

……

end choose
next
arwin.show()
return 0
end if
...全文
259 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsypenghong 2005-04-01
  • 打赏
  • 举报
回复
小鬼,给俺发个行不???
lsypenghonglsy@163.com
lsypenghong 2005-04-01
  • 打赏
  • 举报
回复
大哥,怎么解决的??
和俺说说~~
俺的邮箱:lsypenghonglsy@163.com
QQ:258362757
mnsiii 2005-03-24
  • 打赏
  • 举报
回复
谢谢各位帮忙,现在问题解决了,马上结帖给分
hygougou 2005-03-23
  • 打赏
  • 举报
回复
我这个也还行,要吗?
hygougou 2005-03-23
  • 打赏
  • 举报
回复
找个PFC看看
mnsiii 2005-03-23
  • 打赏
  • 举报
回复
up,up,up
mnsiii 2005-03-23
  • 打赏
  • 举报
回复
我写了,可是不能通过。
for i=1 to upperbound(tab_1.control[])
choose case typeof(tab_1.control[i])
case commandbutton!
commandbutton cb
cb=tab.control[i]
cb.resize(cb.width*Radio,cb.height*Radio)
cb.move(cb.x*Radio,cb.y*Radio)
cb.textsize=cb.textsize*Radio
…… 提示说Incompatible types in assignment :commandbutton ,userobject
不管定义哪个控件,都替是类似错误。楼上的高手们,帮帮忙了
wjlforever 2005-03-23
  • 打赏
  • 举报
回复
多一层循环,用upperbound(tab_1.control[])判断tab 上的控件!
handi 2005-03-23
  • 打赏
  • 举报
回复
PFC的TAB页里面也有inv_resize啊。
lzheng2001 2005-03-23
  • 打赏
  • 举报
回复
可以通过的,你细心检查一下代码吧!
herrick 2005-03-23
  • 打赏
  • 举报
回复
tab控件里面包含的page是用户控件uerobject,如tabpage_1这些
所以你直接使用tab_1.control[]获得的都是userobject
真正要解决的话是在userobject.control[]中想办法的.
其实也就是多了一层,^_^
fibbery 2005-03-23
  • 打赏
  • 举报
回复
还没解决?
TTLOVEYOU3344 2005-03-23
  • 打赏
  • 举报
回复
ding!
lzheng2001 2005-03-22
  • 打赏
  • 举报
回复
tab也有一个control[]属性,保存了在tab上的所有控件,如果遇到tab你可以再写一个循环!与窗口同理!
li_d_s 2005-03-22
  • 打赏
  • 举报
回复
好了,已经发给你了
mnsiii 2005-03-22
  • 打赏
  • 举报
回复
pfc我用了,不过不好用。我现在问的是tab页里面的东西怎么办
handi 2005-03-22
  • 打赏
  • 举报
回复
直接用PFC不就可以了吗? inv_resize 对象
mnsiii 2005-03-22
  • 打赏
  • 举报
回复
我发邮件给你了,不知道你收到了没有
li_d_s 2005-03-22
  • 打赏
  • 举报
回复
发mail到lidsh@bizsmooth.com,我给你一个整体放大的例子
mnsiii 2005-03-22
  • 打赏
  • 举报
回复
终于有一个人理我了,谢谢

up
up
up
加载更多回复(2)

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧