右键弹出菜单的定位????

xiaoxiongfcl 2005-12-12 01:52:38
在数据窗口中右击弹出自己的菜单,不知为什么弹出的位置老是和鼠标点相去一段距离??
原来是没问题的,那个窗口类型是主窗口,直接用OPEN语句打开,那么弹出点是对的,现在我是在MDI窗口(OPENSHEET)中将原来这窗口作为一个表单打开,结果右击弹出菜单位置不对了?
...全文
248 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
allen_lc 2005-12-14
  • 打赏
  • 举报
回复
我也碰到过这个问题。。我也是用的Menuname.PopMenu(parent.PointerX(), parent.PointerY())
我发现。。在MDI中第一次打开这个窗口,右键弹出的位置是对的。然后我关闭这个窗口
再打开时发现右键菜单向左上方移动了一段。关闭再打开,。。发现又向左上移动了一段。
一直不知道原因和解决方法。。。
rightyeah 2005-12-13
  • 打赏
  • 举报
回复
使用主窗口的鼠标坐标,也就是
threshold(threshold) ( ) 的方法:


或者用我的笨办法:比如mdi主窗是w_mdi, menuname.popmenu(w_main.pointerx(), w_main.pointery())



xiaoxiongfcl 2005-12-13
  • 打赏
  • 举报
回复
暂时用“笨”办法解决了,呵呵
谢谢大家
cbz0660 2005-12-12
  • 打赏
  • 举报
回复
up
aniugee 2005-12-12
  • 打赏
  • 举报
回复
我也是一个新手,不知你试一下这个语句是否可以
Menuname.PopMenu(parent.PointerX(), parent.PointerY())
因为数据窗口也是主窗口的一个控件

threshold 2005-12-12
  • 打赏
  • 举报
回复
hehe,写错了,主窗是w_main
threshold 2005-12-12
  • 打赏
  • 举报
回复
或者用我的笨办法:比如mdi主窗是w_mdi, menuname.popmenu(w_main.pointerx(), w_main.pointery())
li_d_s 2005-12-12
  • 打赏
  • 举报
回复
试试看用api直接取鼠标位置,pb自带的取出来是有些问题的
xiaoxiongfcl 2005-12-12
  • 打赏
  • 举报
回复
我用的MDI窗口是仿OUTLOOK的,左边还有个工具栏(自定的)东东占了窗口一点地方呢,在表单中的数据窗口中如何才能得这工具栏的位置呢,我现在用的语句是这样的:
菜单名.Popmenu(this.x+this.PointerX(),this.y+this.PointerY())
结果弹出的东西偏左了,如果关掉左工具栏则左右正常,但上下有偏差,就象你说的和MDI的工具栏有关,不过我发现好象还和打开的表单有没有最大化也有关系

这怎么办好啊????
li_d_s 2005-12-12
  • 打赏
  • 举报
回复
pointerx和pointery要加上控件的x和y坐标;如果你的dw在tab页上,还要加上tab的x和y坐标;如果是mdi且有工具栏的话,还要加上工具栏的高度,我当初是用递归做的
xiaoplx 2005-12-12
  • 打赏
  • 举报
回复
Menuname.PopMenu(PointerX(), PointerY())

611

社区成员

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

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