我创建了一个组件,套间模型。客户使用CoInitialize初始化。组件本身是一个子窗口(属性单),我在创建它的时候指定了父窗口的句柄。使用Spy++发现组件的父窗口句柄确实是我传给它的窗口的父窗口的句柄。   但是我发现组件的窗口并不真正是我的应用的窗口的子窗口,根据它的表现,应该是桌面的子窗口,但是这又和Spy++中显示的不一致,我怀疑组件和它的客户端处于不同的线程中,但是它们的线程模型是兼容的。所以我非常迷惑,请诸位高手指点。

解决方案 »

  1.   

    用SPY++看看有无多余线程即可
      

  2.   

    ruihuahan(飞不起来的笨鸟) ( ) 
    可以把,比如SDI中的About对话框
    我觉得有可能是COM库创建的线程
    用于阻塞方法调用
      

  3.   

    我的组件没有自己的消息循环,它就是一个属性页,并且支持几个自定义的接口。
        用Spy ++查看的时候组件和它的客户的线程的ID确实是一个,但是组件的窗口可以在它的客户的窗口的外边移动(理论上,子窗口是不能移动到父窗口的外面的)。
      

  4.   

    子窗口可以移动到父窗口外面。
    子窗口的类型是popup的时候(对话框一般都是popup类型)
    可以移动到父窗口外面。
    你是不是因为这个原因,一直认为你的子窗口的父窗口是桌面呢?