这个消息是数据库中一个表的一条记录,是鼠标在IE浏览器的访问序列,useractions.我使用SendMessage传的,里面第二个参数貌似是UINT类型,那就是说我只能传一个整数过去??好像是要封装消息吧。
谢谢大家了!

解决方案 »

  1.   

    呃 你在C#的窗体里面去接受这个消息不就得了?
    SendMessage(hWnd,123,0,0);然后再c#的窗体中去 重写消息循环 然后处理这个消息不就搞定了?、、
    如果你的那个c#的窗体 是人家已经写好了的 那就..............
      

  2.   

    问题是我要传的时数据库的记录,是很复杂的,用123能表示么?重写消息循环是什么意思,获取浏览器上鼠标记录的这块是monitor.cpp中写好的。C#都是我写的,C++全是别人写好的,我拿来用,但是在C++里面要改动一点,把记录插入数据库,改成显示在C#做的一个窗口中,然后再插入数据库,也即记录插入数据库由C#处理。
      

  3.   

    问题是我要传的时数据库的记录,是很复杂的,用123能表示么?重写消息循环是什么意思,获取浏览器上鼠标记录的这块是monitor.cpp中写好的。C#都是我写的,C++全是别人写好的,我拿来用,但是在C++里面要改动一点,把记录插入数据库,改成显示在C#做的一个窗口中,然后再插入数据库,也即记录插入数据库由C#处理。
      

  4.   

    至于SendMessage方法传递消息,应该是可以做到,但是对于习惯C#编程的人来说就太难了,因为C#根本不需要也不提倡直接SendMessage,就连消息代码在MSDN里面也找不到,还必须翻看C++的定义,也就是说,如果你会C++,这将非常容易实现,否则很难,而C#的SendMessage其实和C++的用法一样,消息结构也是。
      

  5.   

    问题是我不会VC++,且没有实际做过。
    我只能告诉你,可以直接在Form里面重载一个叫WndProc的函数        protected override void WndProc(ref Message msg)
            {            
                base.WndProc(ref msg);
            }
    msg对象的几个属性分别都是IntPtr类型的,也就是指针,如果你传递时用到了,那么就可以通过这个IntPtr类型的参数,获取相关数据,通过地址转换到实际的结构体数据上面,用Marshal.PtrToStructure方法就可以转换为结构体了(长度必须是固定的才行,变长结构体将编译报错)。