这个怎么实现?

jamesyue2008 2012-11-23 09:21:11
按下鼠标左键在窗口中拖动TLabel,松开后落在新的位置。

谢谢!
...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jamesyue2008 2012-11-23
  • 打赏
  • 举报
回复
对于没有窗口句柄的控件,比如Image,用设置它的坐标的方法来拖动. 而对于有窗口句柄的控件,比如Edit,可以用这样的方法拖动: 在它的OnMouseMove中: void __fastcall TForm1::Edit1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { ReleaseCapture(); (dynamic_cast<TEdit*>(Sender))->Perform(WM_SYSCOMMAND,0xF012, 1); } 这个不错
缘中人 2012-11-23
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/chaoyue8586/3770893 还有这个例子,你可以看看
缘中人 2012-11-23
  • 打赏
  • 举报
回复
缘中人 2012-11-23
  • 打赏
  • 举报
回复
季老大当时都研究了 1. 设定Image的属性DragKind=dkDock; DragMode=dmAutomatic; 设定Form 的属性DockSite=true。 2. 在Image的事件OnEndDock里写一行代码就可以了: void __fastcall TForm1::Image1EndDock(TObject *Sender, TObject *Target, int X, int Y) { ((TControl*)Sender)->HostDockSite = (TWinControl*)0xFFFFFFFF; }

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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