怎么用鼠标拖动图片???

coolchangecool 2005-08-30 05:38:31
大家一定都用过 ACDSee 和 Acrobat PDF Reader 吧?
当图像大于你当前的显示窗口时,你可以用小手状的鼠标,抓住图片,拖动着看!
请问,怎样才能在程序中实现此功能?

...全文
262 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
julong88 2005-08-31
  • 打赏
  • 举报
回复
上面的代码可以拖动窗体
julong88 2005-08-31
  • 打赏
  • 举报
回复
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;

[DllImportAttribute ("user32.dll")]
public static extern int SendMessage(IntPtr hWnd,
int Msg, int wParam, int lParam);

[DllImportAttribute ("user32.dll")]
public static extern bool ReleaseCapture();private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
julong88 2005-08-31
  • 打赏
  • 举报
回复
private void panel2_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
mouseDown = true;
p.X = e.X;
p.Y = e.Y;
}
}

private void panel2_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
mouseDown = false;
}

private void panel2_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(mouseDown)
{
if((panel2.Left+panel2.Width)>panel2.Parent.Width)
return;
panel2.Left = panel2.Location.X + e.X - p.X;
panel2.Top = panel2.Location.Y + e.Y - p.Y;
}
}


拖动panel
coolchangecool 2005-08-31
  • 打赏
  • 举报
回复
Top
coolchangecool 2005-08-31
  • 打赏
  • 举报
回复
不会吧?难道真的没人知道怎么做吗?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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