C# 怎样用sendmessage 鼠标双击消息?急急急!!!!在线等!!!
///<summary>///双击鼠标左键///</summary>publicconstintWM_LBUTTONDBLCLK=0x203;[DllImport("us...
/// <summary>
/// 双击鼠标左键
/// </summary>
public const int WM_LBUTTONDBLCLK = 0x203;
[DllImport("user32.dll", EntryPoint = "SendMessage")]
public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
//双击
private void btnUser_DoubleClick(object sender, EventArgs e)
{
//给本窗体发送单击消息
SendMessage(this.Handle, WM_LBUTTONDBLCLK, 0, 0);
}
//窗体双击事件
private void Form1_DoubleClick(object sender, EventArgs e)
{
//处理数据
DealData();
}
上面的代码是我根据网上找的一些资料,然后写的一个小测试程序,目的是想看看是否能发送鼠标双击事件。
在应用中,任何控件的DoubleClick()事件,任意鼠标键(左键、中键、右键)双击都可以进入到DoubleClick()事件中。现在我就是想模拟这一过程,即按一个热键如F10,就发送一个双击鼠标事件,但在网上找了一些资料都是差不多的,都只说了双击左键、双击中键、双击右键,然后我就写了上面的测试程序,单击一个按钮事件,发送一个鼠标双击事件给窗体,可是窗体的DoubleClick()事件里的DataDeal()函数并没有执行。之后我在窗体的DataDeal()函数打了断点,单击按钮,结果是程序并没有进入到此断点,这说明了一个问题,那个发送鼠标双击消息没有发对!
我在网上找呀找,还是没有找到解决方法,不知道前辈们能否帮帮后生小弟,小弟不胜感激! 展开
/// 双击鼠标左键
/// </summary>
public const int WM_LBUTTONDBLCLK = 0x203;
[DllImport("user32.dll", EntryPoint = "SendMessage")]
public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
//双击
private void btnUser_DoubleClick(object sender, EventArgs e)
{
//给本窗体发送单击消息
SendMessage(this.Handle, WM_LBUTTONDBLCLK, 0, 0);
}
//窗体双击事件
private void Form1_DoubleClick(object sender, EventArgs e)
{
//处理数据
DealData();
}
上面的代码是我根据网上找的一些资料,然后写的一个小测试程序,目的是想看看是否能发送鼠标双击事件。
在应用中,任何控件的DoubleClick()事件,任意鼠标键(左键、中键、右键)双击都可以进入到DoubleClick()事件中。现在我就是想模拟这一过程,即按一个热键如F10,就发送一个双击鼠标事件,但在网上找了一些资料都是差不多的,都只说了双击左键、双击中键、双击右键,然后我就写了上面的测试程序,单击一个按钮事件,发送一个鼠标双击事件给窗体,可是窗体的DoubleClick()事件里的DataDeal()函数并没有执行。之后我在窗体的DataDeal()函数打了断点,单击按钮,结果是程序并没有进入到此断点,这说明了一个问题,那个发送鼠标双击消息没有发对!
我在网上找呀找,还是没有找到解决方法,不知道前辈们能否帮帮后生小弟,小弟不胜感激! 展开
1个回答
展开全部
欧巴,你光发LBUTTONDBLCLK 还不够。
再给他发一个WM_LBUTTONUP事件
public const int WM_LBUTTONUP=0x0202;
//给本窗体发送单击消息
SendMessage(this.Handle, WM_LBUTTONDBLCLK, 0, 0);
SendMessage(this.Handle, WM_LBUTTONUP, 0, 0);
如果问题解决请设为满意,谢谢
再给他发一个WM_LBUTTONUP事件
public const int WM_LBUTTONUP=0x0202;
//给本窗体发送单击消息
SendMessage(this.Handle, WM_LBUTTONDBLCLK, 0, 0);
SendMessage(this.Handle, WM_LBUTTONUP, 0, 0);
如果问题解决请设为满意,谢谢
更多追问追答
追问
还是不行,不过还是先谢谢了!
再者我想恳请回答者自己先试一下,因为我不能追问太多,分数不够了!
谢谢!
追答
我的试过了,可行
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询