about mdi frame

dukeli 2000-04-21 09:10:00
在MDI Frame窗口中,一旦我在MDI Frame中加入图片或数据窗,则其MDI Frame的属性就不存在了,使用OpenSheet也无法打开窗口。what can i do?
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xnjr 2000-10-25
  • 打赏
  • 举报
回复
MCZHOU,你难道没有试过把你的子窗口最小化?
那样会躲在你的背景后边!!
你看不到最小化后的图标了。

929的方法是可取的。
mczhou 2000-04-30
  • 打赏
  • 举报
回复
其实要解决MDI中的客户窗口中显示一个固定图片,以达到背景的效果。我是这样实现的,也许您可以参考。
在MDI窗口的OPEN事件中用opensheet打开一个窗口w_backgrnd,在这个w_backgrnd窗口中,您可以摆放任何您想要的图片,并将这个w_backgrnd窗口的属性设置为:初始状态maxmized,去掉窗口的Resizeable,close,minimize等窗口控制属性。这样您就可以达到在客户区显示一个固定背景的效果,而用户是无法关闭此窗口的。
当然,这样一个w_backgrnd窗口的用途还远远不仅限于此,您可以在其中显示您的系统名称,版权信息,动画等,也可在此w_backgrnd窗口中编程。
929 2000-04-21
  • 打赏
  • 举报
回复
如果你只是想在框架窗口上放一些控件的话,我想可用定制的FRAME,这在PB的例子中在MDI分枝中,有一CUSTOM MDI FRAME的例子,你可以看一下。其中主要用到了MDICLIENT对象,它代表框架窗口中的客户区,可能通过修正它的大小,来达到自定义框架窗口的目的。
如果你想在框架窗口上加图片做背景图的话,那我想比较复杂,目前我试了截获框架窗口的WM_PAINT消息来完成,并且应用自编的DLL来完成绘图工作,但由于框架窗口与MDICLIENT对象不是同一窗口,所以背景图有时会出现,而有时不出。如何解决我正在考虑。
none 2000-04-21
  • 打赏
  • 举报
回复
在mdi frame window中,一旦加入控件则必须在脚本中改变控件mdi_1的位置和尺寸,否则看不到任何打开的sheet(是看不到而不是打不开)。

例如在mdi frame window的左上角(0,0)放了一幅图片,此时可以减少mdi_1的宽度和高度,并且移动mdi_1。

在mdi frame windows的resize事件中加入脚本:
mdi_1.Width = WorkSpaceWidth() - p_1.Width
mdi_1.Height = WorkSpaceHeight() - p_1.Height
mdi_1.X = p_1.Width
mdi_1.Y = p_1.Height

可以看到,图片的右下角顶着客户区域的左上角。

1,072

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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