基本情况:
有一个ActiveX(dll)控件,我在我的MDI程序当中调用该控件,该控件的功能是显示文档内容。我在视图类中通过CreateControl来建立控件窗口,父窗口就是视图类。目标:
希望获得文档显示窗口的鼠标消息。这个文档显示窗口很显然是控件提供的。我的疑问是能不能在我的MDI程序当中把发送给文档显示窗口的消息获得?

解决方案 »

  1.   

    这个可以啊,自己写个消息循环机制就行,要是截获别人程序里发给这个dll的消息就难了
      

  2.   

    可以,在MDI窗口的PreTranslateMessage消息里捕获发往控件窗口的消息即可。
      

  3.   

    PreTranslateMessage我试过,我是在View当中测试的,好像只能截获其子窗口的消息,关键问题是文档显示窗口和View的关系可能是曾孙子的关系了。嵌套的窗口比较多。
      

  4.   

      控件(ActiveX)是自己开发的么?如果是自己开发的,可以添加消息映射解决。
      

  5.   

    如果是自己开发的就没有这么麻烦了。
    这个控件会调用另外一个进程,我所需要查询的窗口就是该进程的,不是我自己的进程内部的窗口。
    曾经试过EnumChildWindows,好像跨进程的不适用。
    EnumWindows倒是可以得到该进程的Top-Level窗口,但是我需要的窗口在建立的时候指明的父窗口是我的视图类。
    所以很难办,不知道有什么方法可以获得该窗口的句柄?谢谢各位!