最近作一个项目,用.net包原有的vb功能,通过引用dll调用,但是无法将vb非模式窗体show出来,所以我们在vb的dll中使用了API函数将其显示在.net窗体上。但是问题出来了,有一个vb窗体上有个RichText控件,现在无法使用回车换行、无法支持五笔输入法,Ctrl+C,Ctrl+V失效以及其他问题。
    我们怀疑是否这些触发了什么windows消息,然后被.net背后的窗体或者.net框架底层捕获走了,哪位高人是否遇到过这种问题,万请相告解决,高分相送。

解决方案 »

  1.   

    问题已解决
    果然是.net的消息机制的问题,.net的消息机制和vb的传统消息机制不一样
    当模式方式显示的时候采用的传统消息机制,没有问题
    非模式的时候,.net的消息机制会接管上面的vb窗体上的消息,当然这个控件也有缺陷,在这种情况下这些操作的消息被.net底层消息机制截获后,它认为这个控件不需要这个消息了,没有传递给这些控件,所以出问题了
    我们用钩子函数解决此问题,补发消息给控件
      

  2.   

    关注,好贴。
    因这两天用vba搞cad.