右键弹出菜单的定位????
在数据窗口中右击弹出自己的菜单,不知为什么弹出的位置老是和鼠标点相去一段距离??
原来是没问题的,那个窗口类型是主窗口,直接用OPEN语句打开,那么弹出点是对的,现在我是在MDI窗口(OPENSHEET)中将原来这窗口作为一个表单打开,结果右击弹出菜单位置不对了?
问题点数:50、回复次数:11Top
1 楼xiaoplx(凌云剑)回复于 2005-12-12 14:06:19 得分 5
Menuname.PopMenu(PointerX(), PointerY())Top
2 楼li_d_s(鄙视那些不懂Java却跑来乱骂的人,.NET没啥了不起)回复于 2005-12-12 14:51:32 得分 5
pointerx和pointery要加上控件的x和y坐标;如果你的dw在tab页上,还要加上tab的x和y坐标;如果是mdi且有工具栏的话,还要加上工具栏的高度,我当初是用递归做的Top
3 楼xiaoxiongfcl(我是谁)回复于 2005-12-12 15:07:47 得分 0
我用的MDI窗口是仿OUTLOOK的,左边还有个工具栏(自定的)东东占了窗口一点地方呢,在表单中的数据窗口中如何才能得这工具栏的位置呢,我现在用的语句是这样的:
菜单名.Popmenu(this.x+this.PointerX(),this.y+this.PointerY())
结果弹出的东西偏左了,如果关掉左工具栏则左右正常,但上下有偏差,就象你说的和MDI的工具栏有关,不过我发现好象还和打开的表单有没有最大化也有关系
这怎么办好啊????Top
4 楼li_d_s(鄙视那些不懂Java却跑来乱骂的人,.NET没啥了不起)回复于 2005-12-12 15:38:54 得分 4
试试看用api直接取鼠标位置,pb自带的取出来是有些问题的Top
5 楼threshold(threshold)回复于 2005-12-12 15:48:28 得分 4
或者用我的笨办法:比如mdi主窗是w_mdi, menuname.popmenu(w_main.pointerx(), w_main.pointery())Top
6 楼threshold(threshold)回复于 2005-12-12 15:49:15 得分 0
hehe,写错了,主窗是w_mainTop
7 楼aniugee(阿牛)回复于 2005-12-12 17:00:46 得分 4
我也是一个新手,不知你试一下这个语句是否可以
Menuname.PopMenu(parent.PointerX(), parent.PointerY())
因为数据窗口也是主窗口的一个控件
Top
8 楼cbz0660(珍)回复于 2005-12-12 17:03:42 得分 4
upTop
9 楼rightyeah(众妙之门)回复于 2005-12-13 09:39:01 得分 20
使用主窗口的鼠标坐标,也就是
threshold(threshold) ( ) 的方法:
或者用我的笨办法:比如mdi主窗是w_mdi, menuname.popmenu(w_main.pointerx(), w_main.pointery())
Top
10 楼xiaoxiongfcl(我是谁)回复于 2005-12-13 19:50:15 得分 0
暂时用“笨”办法解决了,呵呵
谢谢大家Top
11 楼allen_lc(都市现代狼-名字虽土。但代表一种回忆)回复于 2005-12-14 09:07:51 得分 4
我也碰到过这个问题。。我也是用的Menuname.PopMenu(parent.PointerX(), parent.PointerY())
我发现。。在MDI中第一次打开这个窗口,右键弹出的位置是对的。然后我关闭这个窗口
再打开时发现右键菜单向左上方移动了一段。关闭再打开,。。发现又向左上移动了一段。
一直不知道原因和解决方法。。。
Top




