前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

<求助>pb窗口最大化问题-CSDN论坛-CSDN.NET-中国最大的IT技术社区 --> 首页 论坛帮助 论坛牛人 论坛地图 CSDN > CSDN论坛 > PowerBuilder > 控件与界面 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 eggshell123 <求助>pb窗口最大化问题 [问题点数:40分,结帖人eggshell123] 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 只显示楼主 收藏 eggshell123 eggshell123 等级: 结帖率:100% 楼主 发表于: 2010-05-14 13:30:12 窗口编辑好后运行,点最大化但是窗口内的内容不能最大化,空出一大片空白,这严重影响美观,而且没有达到最大化的效果,本人初学者还请高手帮忙,小弟感激不尽阿~ 更多 分享到: 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 回复次数:10 xys_777 xys_777 等级: 结帖率:73.47% 2更多勋章 #1 得分:3 回复于: 2010-05-14 13:31:49 你再resize里控制窗体上控件的大小 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 wei1583812 wei1583812 等级: 结帖率:94.74% #2 得分:15 回复于: 2010-05-14 14:37:40 你在窗口的resize事件里面写代码: 给你这段代码: //=================================== // 重新设置控件布局 //=================================== Integer i, li_control, li_MarginX, li_MarginY String ls_move, ls_resize DragObject ldrag_object,ldrag_parent,ldrag_tmp If Not(This.WindowType = MDI! Or This.WindowType = MDIHelp!) Then li_control = inv_control.Of_GetControlCount() For i = 1 to li_control ldrag_object = inv_control.of_GetControl(i) ls_move = inv_control.of_GetMove(i) ls_resize = inv_control.of_GetResize(i) li_MarginX = inv_control.of_GetMarginX(i) li_MarginY = inv_control.of_GetMarginY(i) IF ldrag_object.GetParent().ClassName() = This.ClassName() THEN CHOOSE CASE Upper(ls_move) CASE 'RIGHT' ldrag_object.Move(This.width - li_MarginX - ldrag_object.width, ldrag_object.y) CASE 'BOTTOM' ldrag_object.Move(ldrag_object.x, This.height - li_MarginY - ldrag_object.height) CASE 'BOTH' ldrag_object.Move(This.width - li_MarginX - ldrag_object.width, This.height - li_MarginY - ldrag_object.height) END CHOOSE CHOOSE CASE Upper(ls_resize) CASE 'RIGHT' ldrag_object.Resize(This.width - li_MarginX - ldrag_object.x, ldrag_object.height) CASE 'BOTTOM' ldrag_object.Resize(ldrag_object.width, This.height - li_MarginY - ldrag_object.y) CASE 'BOTH' ldrag_object.Resize(This.width - li_MarginX - ldrag_object.x, This.height - li_MarginY - ldrag_object.y) END CHOOSE ELSE ldrag_parent = ldrag_object.GetParent() CHOOSE CASE Upper(ls_move) CASE 'RIGHT' ldrag_object.Move(ldrag_parent.width - li_MarginX - ldrag_object.width, ldrag_object.y) CASE 'BOTTOM' ldrag_object.Move(ldrag_object.x, ldrag_parent.height - li_MarginY - ldrag_object.height) CASE 'BOTH' ldrag_object.Move(ldrag_parent.width - li_MarginX - ldrag_object.width, ldrag_parent.height - li_MarginY - ldrag_object.height) END CHOOSE CHOOSE CASE Upper(ls_resize) CASE 'RIGHT' ldrag_object.Resize(ldrag_parent.width - li_MarginX - ldrag_object.x, ldrag_object.height) CASE 'BOTTOM' ldrag_object.Resize(ldrag_object.width, ldrag_parent.height - li_MarginY - ldrag_object.y) CASE 'BOTH' ldrag_object.Resize(ldrag_parent.width - li_MarginX - ldrag_object.x, ldrag_parent.height - li_MarginY - ldrag_object.y) END CHOOSE END IF Next End if If This.width < il_MinWidth Then This.width = il_MinWidth End if If This.Height < il_MinHeight Then This.height = il_MinHeight End if 我们一直用的,你考进去就行了。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 wei1583812 wei1583812 等级: 结帖率:94.74% #3 得分:0 回复于: 2010-05-14 14:38:23 汗,不好意思,忘记把底层函数给你了。抱歉,你还是不能用。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 chenpingsuo chenpingsuo 等级: 结帖率:16.67% #4 得分:0 回复于: 2010-05-14 14:57:08 pre_open() 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 flysky_yzu flysky_yzu 等级: 结帖率:88.89% #5 得分:3 回复于: 2010-05-14 14:57:51 2楼正解。 在窗体preopen 事件中 用Resize 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 lucky_2005 lucky_2005 等级: 结帖率:83.33% #6 得分:15 回复于: 2010-05-14 16:32:56 $PBExportHeader$f_windowscreen.srf $PBExportComments$根据不同分辨率改变窗口和控件大小,以及字体大小。参数:窗口名,开发环境分辨率。如:f_windowscreen(this,1024,768) global type f_windowscreen from function_object end type forward prototypes global function integer f_windowscreen (readonly window arwin, integer arx, integer ary) end prototypes global function integer f_windowscreen (readonly window arwin, integer arx, integer ary);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 dragobject temp//用于取各种控件 windowobject song[] song[]=arwin.control[] for i=1 to upperbound(song) temp=arwin.control[i]//调整控件大小和位置 temp.width=temp.width*Radio temp.x=temp.x*Radio temp.height=temp.height*Radio temp.y=temp.y*Radio choose case typeof(temp) case tab! tab mtab mtab=temp mtab.textsize=mtab.textsize*Radio//设置字体大小 case commandbutton! commandbutton cb cb=temp cb.textsize=cb.textsize*Radio case singlelineedit! singlelineedit sle sle=temp sle.textsize=sle.textsize*Radio case editmask! editmask em em=temp em.textsize=em.textsize*Radio case statictext! statictext st st=temp st.textsize=st.textsize*Radio case datawindow!//get datawindow zoomen datawindow dw dw=temp dw.object.datawindow.zoom=string(int(Radio*100))//注意datawindow和其他控件的不同。 case picturebutton! picturebutton pb pb=temp pb.textsize=pb.textsize*Radio case checkbox! checkbox cbx cbx=temp cbx.textsize=cbx.textsize*Radio case dropdownlistbox! dropdownlistbox ddlb ddlb=temp ddlb.textsize=ddlb.textsize*Radio case groupbox! groupbox gb gb=temp gb.textsize=gb.textsize*Radio case listbox! listbox lb lb=temp lb.textsize=lb.textsize*Radio case multilineedit! multilineedit mle mle=temp mle.textsize=mle.textsize*Radio case radiobutton! radiobutton rb rb=temp rb.textsize=rb.textsize*Radio end choose next arwin.show() return 0 end if end function 将上面这些代码存成rtf文档导入后调用试试 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 mufangge mufangge 等级: 结帖率:0% #7 得分:1 回复于: 2010-08-05 21:59:58 resize事件 处理 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 xiaotubie xiaotubie 等级: 结帖率:100% #8 得分:3 回复于: 2010-08-10 17:23:11 PFC里有一个服务,在window 改变大小时,同时改变控件的大小,具体名称忘记了。你有兴趣可以去查查,基本上拿来就可以使用。 里面有N个函数,可以设定控件保持哪个方向大小不向,仅仅往哪个方向变形,比较好用,用的时候在resize事件里写几行代码就可以了 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 KaedaRukawa KaedaRukawa 等级: 结帖率:100% #9 得分:0 回复于: 2010-08-11 16:48:32 顶一个,需要自己写的,resize 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 netzgj netzgj 等级: 结帖率:100% #10 得分:0 回复于: 2010-08-11 17:48:32 经常写resize事件写到吐血的路过~~ 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 --> --> --> --> --> --> 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 写出你眼中的IE11 赢取新年好礼! 勇敢写出你的爱 赢莫文蔚签名大礼 2014年4月微软MVP申请开始了! 陈勇- 敏捷开发现状及发展之路 CSDN高校俱乐部 高校全新改版邀你来学习和挑战 本帖子已过去太久远了,不再提供回复功能。 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace [关闭] [关闭]