调用API函数实现同样功能,
具体哪个函数忘了。

解决方案 »

  1.   

    谢谢呀。
    1 定义消息
    在c#中消息需要定义成windows系统中的原始的16进制数字,比如
    const int WM_Lbutton = 0x201; //定义了鼠标的左键点击消息
    public const int USER = 0x0400 // 是windows系统定义的用户消息
    2 消息发送
    消息发送是通过windows提供的API函数SendMessage来实现的它的原型定义为
    [DllImport("User32.dll",EntryPoint="SendMessage")]
    private static extern int SendMessage(
    int hWnd, // handle to destination window
    int Msg, // message
    int wParam, // first message parameter
    int lParam // second message parameter
    );
    3 消息的接受
    在C#中,任何一个窗口都有也消息的接收处理函数,就是defproc函数
    你可以在form中重载该函数来处理消息
    protected override void DefWndProc ( ref System.WinForms.Message m ){ switch(m.msg)
    case WM_Lbutton : ///string与MFC中的CString的Format函数的使用方法有所
    string message = string.Format("收到消息!参数为:{0},{1}",m.wParam,m.
    MessageBox.Show(message);///显示一个消息框 break; defa
    base.DefWndProc(ref m);///调用基类函数处理非自定义消息。 brea
    其实,C#中的事件也是通过封装系统消息来实现的,如果你在DefWndProc函数中不处理该那么,他理该消息,系统便会通过代理来实现鼠标单击的处理函数,因此你可以通过
    defproc函数来拦截消息。