C#拖动窗口事件

publicstaticexternboolSendMessage(IntPtrhwnd,intwMsg,intwParam,intlParam);publicconst... public static extern bool SendMessage(IntPtr hwnd,int wMsg,int wParam,int lParam);
public const int WM_SYSCOMMAND=0x0112;
public const int SC_MOVE=0xF010;
public const int HTCAPTION=0x0002; private void Form1_MouseDown(object sender, MouseEventArgs e)
{//拖动窗体
ReleaseCapture();
SendMessage(this.Handle,WM_SYSCOMMAND,SC_MOVE+HTCAPTION, 0);
}为什么要把数值发送呢 数值有什么特定的含义。?
展开
 我来答
匿名用户
2013-04-18
展开全部
给窗口发送SendMessage(wm_syscommand,0xf012,0),可以使鼠标在窗口的任何地方拖动都可以移动窗口
ReleaseCapture();
如果MOUSE进入,则设置MOUSE捕获。
SENDMESSAGE向系统发送移动消息,具体消息就是你的参数,因此根据参数消息的不同达到的效果就不同。所以SENDMESSAGE功能强大
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星月小木木
2016-01-13 · TA获得超过3.2万个赞
知道大有可为答主
回答量:2.4万
采纳率:0%
帮助的人:9980万
展开全部
1、在“属性”窗口中,先设置MDI的父窗口的AllowDrop 属性更改为true;2、在父窗口的事件中添加下面两个事件
private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.All;
else
e.Effect = DragDropEffects.None;
}
private void Form1_DragDrop(object sender, DragEventArgs e)
{
string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
int i;
for (i = 0; i < s.Length; i++)
{
if(s[i].Trim()!="")
{
//打开新的窗口 把路径传过去
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-18
展开全部
调用SendMessage,传入窗口句柄,事件信息,指明要拖动窗口所需的处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式