ATL 复合控件中怎样把WORD 嵌入到对话框中
现在
我的思路是使用CAxWindow 的CreateControlEx方法
代码大概是
CAxWindow *m_window = new CAxWindow;
m_window.attach(this->m_hwnd);
m_window.CreateCreateControlEx("progid",...);
然后使用PutVisible(Ture)显示WORD
但是现在WORD 没有嵌入到复合控件的对话框中
而是独立另开了窗口显示出来了。难道CAxWindow 不具有控件包容的功能吗?CAxWindow 不是一个容器吗?
现在我很困惑,希望那位牛人兄弟给我解释下,或者教我怎样实现一个这样的容器,然后把
WORD 嵌入到容器中.
注:我现在说的是ATL中实现,请来的兄弟不要说用什么MFC 来实现。谢谢

解决方案 »

  1.   

    WORD不是简单的ActiveX控件,不能使用普通的ActiveX容器(如CAxWindow)加载,它是Active Document架构,使用上比ActiveX复杂很多,尤其在用户交互上更加难缠。幸运的是,网上有一个ActiveX控件,名称叫做dsoframer,它实现了Active Document容器功能,你只需要加载这个控件,然后由它来加载WORD就能满足你的需要。
      

  2.   

    dsoframer已经被微软喀嚓了,还是写Office插件吧
      

  3.   

    蒋老大能不能跟ms商量商量给我们c、C++开发人员提供一个便利的office api 接口
      

  4.   

    晕倒
    难道就没有一个人会吗?
    不要说什么dosframer!我现在就想知道怎样实现一个OLE容器然后嵌入WORD
    CSDN 上就没一个 牛人来吗
      

  5.   

    WebBrowser也是一个支持ActiveDocument的OLE容器,你可以用它来加载WORD,只不过菜单工具栏之类的活还得你自己费心。只能说这么多了,等牛人来……