SendMessage仅与C#中的MessageBox一起使用

时间:2017-07-14 08:29:48

标签: c# messagebox sendmessage

我在C#中的应用程序存在一个奇怪的问题。

我有一个函数调用setYellow(),而在另一个应用程序中,我有一个5种颜色的控件。

颜色的坐标为:红色20,黄色40,绿色60,蓝色80,紫色100(在该控件中)。

所以我使用SendMessage点击颜色,这样:

PostMessage(colori.hWnd, WM_LBUTTONDOWN, 1, MakeLParam(40, 9));
PostMessage(colori.hWnd, WM_LBUTTONUP, 1, MakeLParam(40, 9));

我现在是用户通过带按钮的控制台发送的命令列表,其中一个命令调用setYellow()函数。

现在,如果我创建一个调用setYellow()的按钮,它可以正常工作! 如果我从列表中读取命令,则会调用setYellow()并单击右侧坐标,但应用程序会单击红色按钮...

如果我看到Spy ++,它会发送正确的坐标,如果我看到按钮setYellow和命令列表setYellow之间的差异,则没有差别!

但等等,魔法......如果我放了一个:

MessageBox.Show("BYE");
在PostMessage之前的

,它也可以从命令列表中运行!!!

我尝试使用Thread.Sleep(3000);减慢我的应用程序速度,但需要3秒钟,然后从命令列表中单击错误的按钮,从表单上的按钮点击右键...

我尝试了控制刷新和Application.DoEvents,但没有......

我该怎么办?

0 个答案:

没有答案