C#中sendmessage发送消息示例

来源:百度知道 编辑:UC知道 时间:2024/06/01 07:23:24
以知一个控件的句柄,如何向他发送
“字符”、“数字”,“单击”消息。

一楼那么麻烦的代码.简单点.比如要模拟一个Button被单击了
SendMessage(this.button1.Handle,0x0201,0) //发送WM_LBUTTONDOWN=0x0201
SendMessage(this.button1.Handle,0x0202,0) //发送WM_LBUTTONUP=0x0202
单击要发2个消息.一个按下一个释放.

第三个参数是可选参数.有的消息要.有的不需要.比如单击就不需要这个参数.
别的消息.比如鼠标移动的可能需要在这里加上一些鼠标的参数.

SendMessage的三个参数意思分别为
参数1:接收消息的控件的句柄
参数2:消息类型 比如WM_LBUTTONDOWN
参数3:消息的附加信息 比如要传递一些文字啊.或者坐标信息

发送消息:
int msg;
IntPtr wparam;
IntPtr lparam;
Control.ReflectMessage(handle,Message.Create(handle,msg,wparam,lparam));//handle为已知的控件句柄

接收消息需要重写WinProc,以下代码来自MSDN:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace csTempWindowsApplication1
{
public class Form1 : System.Windows.Forms.Form
{
// Constant value was found in the "windows.h" header file.
private const int WM_ACTIVATEAPP = 0x001C;
private bool appActive = true