如何用Panel移动窗体;熟悉消息处理请... ...

zcfzcf001 2005-11-14 01:48:54
在一个无标题的窗体上,放上一个控件Tpanel,panel1,想让其模拟窗体的标题区,
请问该怎么处理,以达到在panel1上点击移动窗体呢?
...全文
198 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
GARNETT2183 2006-02-07
  • 打赏
  • 举报
回复
在Panel的MouseMove事件里面写入
begin
ReleaseCapture;
SendMessage(Self.Handle,WM_SYSCOMMAND,SC_MOVE+1,0);
end;
super_kong 2005-12-28
  • 打赏
  • 举报
回复
在panel的单击事件中,重新设置窗体的left,top属性 。
Frank6600 2005-12-28
  • 打赏
  • 举报
回复
没写过,但好像不难,
请依下列步骤处理,

1.在Panel内设两个变数,估且命名为FMouseDown: Boolean;及FMouseDownPos: TPoint;
2.在Panel.OnMouseDown内写上FMouseDown:=True;FMouseDownPos:=Mouse此时的位置;
3.在Panel.OnMouseUp内写上FMouseDown:=False;
4.最后,在Panel.OnMouseMove内写上下列的程式代码

if FMouseDown then
begin
Form的移动位置:=现在Mouse位置与FMouseDownPos之间的差。
end;

上面写的是伪代码,
你应该可以试着看懂。

要注意的是,Mouse的位置要转换为Screen座标,
包括保存于FmouseDownPos内和取得现在Mouseo位置都要。

所位Form的移动位置是指
Form.Left:=Form.Left+位移量;
Form.Top:=Form.Top+位移量;

位移量就是上面写的「现在Mouse位置与FMouseDownPos之间的差」。

懂了﹖

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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