如何判断一个窗口是否有父窗口

breezeflying 2001-07-30 07:04:42
我通过PARENTWINDOW返回是否为NULL来判断,行不通,还有别的方法吗?请多指教,急
谢谢!
...全文
406 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
NetColorWolf 2001-08-03
  • 打赏
  • 举报
回复
一个窗口是否有父窗口依赖于该窗口的类型以及打开方式。窗口在打开时可以指定父窗口。对于总有父窗口的窗口,如果打开时没有指定父窗口,那么PowerBuilder将按照缺省约定给这个窗口指定一个父窗口。总有父窗口的窗口类型包括子窗口和响应窗口(Response Window)。
MDI应用中工作表的父窗口是MDI框架窗口,弹出窗口的父窗口是打开该窗口的窗口,但在MDI应用程序中,弹出窗口的父窗口是MDI框架窗口。然而,应用对象Open事件处理程序中打开的窗口没有父窗口。
liulee 2001-08-03
  • 打赏
  • 举报
回复

你的方法有问题,sheet的菜单应当从frame继承过来才是标准的mdi方式。
如果可能,完全只做一个菜单,sheet不需要菜单就可以了。

你这样处理只会带来复杂的操作。

hzslx 2001-07-31
  • 打赏
  • 举报
回复
up
breezeflying 2001-07-31
  • 打赏
  • 举报
回复
令狐兄啊,我用过parentwindow()这个函数,编译没问题,就是运行时说找不到对象的引用
我的想法是做一个父类的窗口,具有对屏幕分辨率自适应变化大小及里面控件大小的功能。
所有的窗口都从它继承。
因为我做的是MDI的应用,子窗口的菜单可以覆盖父窗体的菜单,但是不覆盖父窗体的工具拦,有时程序里需要在打开子窗口时把主窗体的工具拦消去。但也有时候,某些窗体是以OPEN方式打开的RESPONSE类型窗体。有的是用OPENSHEET打开的。我想在父类里判断一下
窗口是否是用OPENSHEET打开的,这样它应该有PARENTWINDOW,用OPEN 打开的应该没有PARENTWINDOW,即此函数返回NULL,但是我试过不行。
if isNull(this.parentwindow())=false then
this.parentwindow().ToolbarVisible=FALSE
end if

咖啡 2001-07-30
  • 打赏
  • 举报
回复
if isNull(this.ParentWindow()) =true then
Messagebox("debug","no parent")
else
// powerobject ob
// ob=this.getparent()
// string str
// str=string(ob.width)
Messagebox("debug","have parent:")
end if
咖啡 2001-07-30
  • 打赏
  • 举报
回复
用parentwindow()!
breezeflying 2001-07-30
  • 打赏
  • 举报
回复
楼上的哥们,好象getparent函数可以用来判断窗口中的控件,但用在窗口里好象不行
我试过
我主要想知道一个窗口,在不知道这个窗口是被用OPEN打开还是OPENSHEET打开的情况下如何能识别出来,我是想通过看他有没有父窗口来判断,
上面的兄弟,给个例子来,谢谢
你给的方法我试了,好象不起作用
if isNull(this.getparent()) =true then
Messagebox("debug","no parent")
else
// powerobject ob
// ob=this.getparent()
// string str
// str=string(ob.width)
Messagebox("debug","have parent:")
end if
helpeachother 2001-07-30
  • 打赏
  • 举报
回复
用getparent()的返回值判断
ylg007 2001-07-30
  • 打赏
  • 举报
回复
我记得有这个函数getparent()可以的。

1,075

社区成员

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

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