如何得到mdi窗口的鼠标坐标!(100分)

  • 主题发起人 主题发起人 less
  • 开始时间 开始时间
L

less

Unregistered / Unconfirmed
GUEST, unregistred user!
我的mdi窗口右面还有一个treeview
我通过屏幕上当前鼠标位置减去主form再减去mdi form来得到,mdi form上的鼠标坐标
可是,位置总有偏差。以下是我的代码:

procedure TForm1.ToolbarButton972MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
mybit:Tbitbtn;
point :Tpoint;
form:Tform;
begin
form:=screen.ActiveForm;

screen.cursor:=crdefault;
if screen.ActiveForm.name<>'Form1' then
begin
GetCursorPos(Point);
mybit:=Tbitbtn.Create(self);
mybit.Parent:=Form;
mybit.left:=point.x-form1.left-form.Left;
mybit.Top:=point.y-form1.top-form.top
end;
end;

 
你这个问题可能是忽略了窗口的 title 的高度了。

TFrom 有个 ClientHeight
用他减去 TForm.Height 就是 Title的高度了。

在你的 MyBit.top 减去 Title 的高度就对了!

不知道是不是你说的问题所在。
另外,你为什么不用这个函数本身的x, y呢?
 
谢谢你的回答

我是用另外一个按钮的mouseup事件来触发程序的,所以上面的x,y是那个按钮的
相对鼠标坐标。
 
还有没有其他方法呀!
 
接受答案了.
 
后退
顶部