社区
C++ Builder
帖子详情
如何使Panel可以被拖动?
xxiao07
2003-04-27 08:38:46
设定Panel头部的某个区域可以被鼠标拖动
...全文
313
9
打赏
收藏
如何使Panel可以被拖动?
设定Panel头部的某个区域可以被鼠标拖动
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
牧牛人软件
2003-04-27
打赏
举报
回复
“要Panel头部的某个区域可以鼠标拖动”简单一点:
Panel的头部加上一个Label,Label->Color=clBlue;
void __fastcall TForm1::Label1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
/*这样也可以
ReleaseCapture();
SendMessage(Panel1->Handle,WM_SYSCOMMAND,SC_MOVE+HTCAPTION,0);
*/
WORD SC_DragMove = 0xF012;
SetCapture(NULL);
SendMessage(Panel1->Handle,WM_SYSCOMMAND,SC_DragMove,0);
}
gdyt007
2003-04-27
打赏
举报
回复
暈!轉眼別人連代碼都寫好了!
DaMimit
2003-04-27
打赏
举报
回复
你为什么不用form呢?
将form的parent指到另外一个form然后。。
gdyt007
2003-04-27
打赏
举报
回复
加入
Panel1->DragMode=dmAutomatic;
Panel1->DragKind= dkDock;
或者在panel的屬性裏面設定就行
牧牛人软件
2003-04-27
打赏
举报
回复
void __fastcall TForm1::Panel2MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
WORD SC_DragMove = 0xF012;
SetCapture(NULL);
SendMessage(Panel2->Handle,WM_SYSCOMMAND,SC_DragMove,0);
}
Libran
2003-04-27
打赏
举报
回复
在Form上放一个Panel,分别响应其MouseDown、MouseMove、MouseUp事件,代码如下:
//定义变量
bool CanMove = false;
int OldLeft, OldTop, OldX, OldY;
//------------------------------------------------------------------------
//响应MouseDown事件
void __fastcall TForm1::Panel1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
TPanel *Panel = (TPanel *)Sender;
if (Y < 20) //指出在Panel上部20像素内按下鼠标才开始移动
{
OldLeft = Panel->Left;
OldTop = Panel->Top;
OldX = Mouse->CursorPos.x;
OldY = Mouse->CursorPos.y;
CanMove = true;
}
}
//------------------------------------------------------------------------
//响应MouseMove事件
void __fastcall TForm1::Panel1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
TPanel *Panel = (TPanel *)Sender;
if (!CanMove) return;
Panel->Left = OldLeft+(Mouse->CursorPos.x-OldX);
Panel->Top = OldTop+(Mouse->CursorPos.y-OldY);
}
//------------------------------------------------------------------------
//响应MouseUp事件
void __fastcall TForm1::Panel1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
CanMove = false;
}
xxiao07
2003-04-27
打赏
举报
回复
我要的是Panel动,而它的Parent(如Form)不动!!
xxiao07
2003-04-27
打赏
举报
回复
写点代码吧
Libran
2003-04-27
打赏
举报
回复
在MouseDown、MouseMove、MouseUp事件里判断、处理
c#
panel
的
拖动
和缩放
可以动态创建多个
panel
,选中后可以
拖动
,可以删除选中的
panel
,有需要的可以参考一下,非常实用的例子
Flex可以拖拽的
panel
很简单,可以直接用。不能动的
panel
现在可以动起来了。
EasyUI应用(项目实战)
jquery入门基础,jquery赋值取值,事件处理和绑定,提交数据,datagrid控件显示数据,分页,事件处理;Tabs控件动态创建多标签;datebox日期时间控件的赋值和取值;window弹出窗口应用;tree创建树形菜单,部门列表等,
panel
控件的使用;progressbar进度条的应用;dialog控件的使用;
winform无边框在
panel
上
拖动
窗口位置,改变窗口大小
winform无边框在
panel
上
拖动
窗口位置,改变窗口大小 如果不能使用随时联系我
鼠标
拖动
改变面板
panel
大小,可限定最小值和最大值
两个方法鼠标
拖动
改变面板
panel
大小,可限定面板的最小值和最大值
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章