powerbuilderMDI窗体设置的工具栏被用opensheet()打开的MDI子窗体覆盖,求大神帮帮忙

IGetYouu 2017-10-17 06:40:05
如图,我PB开发工具里面展示了我需要的俩个菜单图标,而当运行程序时,MDI窗体的工具栏被用
OPENSHEET()打开的MDI子窗体给覆盖掉了,这个是为什么,百度了下说是工作区问题??
主窗体那里出现灰色区域是应为给子窗体设置了在什么位置打开窗体所以有间隔出现灰色区域。
能给小弟解解惑吗?谢谢了
...全文
655 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldMobile 2017-10-18
  • 打赏
  • 举报
回复
你需要在主窗口里修改mdi_1的位置,试试在主窗口open事件里写以下代码 this.mdi_1.move(200, 300) this.mdi_1.resize(400, 400) 然后你再根据需要调整一下大小,参考资料如下: 〖MDI〗-Multiple Document Interface*菜单是MDI应用中必不可少的,不仅Frame必须有一个菜单,就连在客户区打开的各个Sheet也应该有菜单,如果没有就会自动继承前面Sheet的菜单。有两种通常的方式来为MDI的Sheet表提供菜单:在框架和每个Sheet之间共享一个菜单,或者分别为每个Sheet提供一个单独的菜单,当然也可以这两种方式混合使用。当打开多个有菜单的Sheet时,只有当前Sheet的菜单显示在Frame顶部,其他Sheet的工具条可以显示,而它们的菜单不显示。菜单提供各个Sheet间切换的功能,以及在Sheet中能够完成的绝大部分功能。每个菜单可以有自己对应的工具条,也可以没有,还可以对应多行工具条,这些都是在菜单画板中设计的。*客户区是MDI窗口中用户的工作区间,Sheet都是在该区域显示的,它们的显示范围不会超过该区域。如果在MDI框架中放置了控件,这样的MDI窗口称为定制Frame,否则就称为标准Frame。客户区实际上是一个非常特殊的控体该控件叫做mdi_1,只有当运行时才可用。当使用定制Frame时mdi_1控件不能正确显示在可视区域,这时打开Sheet也不会正常显示,应该在Frame的Resize事件中编写脚本,对mdi_1重新进行定位。假设在Frame的上部放置了命令按键cb_1,在命令按键的下面和状态条之间显示mdi_1。脚本如下:uint li_x,li_y,li_width,li_heightli_x = WorkSpaceX()li_y = cb_1.y + cb_1.Heightli_width = WorkSpaceWidth()li_height = WorkSpaceHeight() - li_y - mdi_1.MicroHelpHeightmdi_1.Move(li_x,li_y)mdi_1.Resize(li_width,li_height)上述脚本中的函数WorkSpaceX、WorkSpaceWidth、WorkSpaceHeight和另外的函数WorkSpaceY用来获取关于工作区域的参数,使用方法都比较简单,只要注意这些函数都不包括工具条所占用的区域。通过上述脚本,mdi_1控件就可以正确显示在Frame的可视范围内,再打开Sheet也不会出现什么异常了。当使用标准Frame时,系统会自动维护客户区的位置和大小。 链接:http://blog.csdn.net/u012369435/article/details/36436975

604

社区成员

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

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