精华区里应该有的,但是找了半天没找到,麻烦哪位高人指点一点。做好了一个ocx控件,如何在窗口中动态的创建?以及如何发射事件等等。

解决方案 »

  1.   

    去看一下COM的教程吧(书是海了去的),要弄懂这个要很大篇幅,如需要这方面的书请给我留言,只是我不是每天都上网,会拖几天,但我一定会尽快的。
      

  2.   

    动态创建ocx   
      CComQIPtr<IWebBrowser2>   m_spBrowser;   
      CAxWindow   content_wnd;   
      ......   
      if(     _tcslen(m_tcHtmlFileName)   >   0   )   
      {   
      RECT   rc;   
      GetClientRect(   &rc   );   
      if(m_spBrowser==NULL)   
      {   
      LPOLESTR   pstrbrowserid;   
      StringFromCLSID(IID_IWebBrowser2,&pstrbrowserid);   
      _bstr_t   bstrbrowser(pstrbrowserid);   
      CoTaskMemFree(pstrbrowserid);   
      if(content_wnd.IsWindow())   
      content_wnd.DestroyWindow();   
      content_wnd.Create(   m_hWnd,   rc,   LPCTSTR(bstrbrowser),   WS_CHILD&brvbar;WS_VISIBLE&brvbar;WS_HSCROLL&brvbar;WS_VSCROLL   );//create   a   browser   control   
      HRESULT   hrbrowser;   
      hrbrowser   =   content_wnd.QueryControl(   IID_IWebBrowser2,   reinterpret_cast<void**>(&m_spBrowser)   );   
      } 
      

  3.   

    http://topic.csdn.net/t/20050218/13/3789751.html
    需要
    #include   <atlbase.h>   
        CComModule   _Module;   
      #include   <atlcom.h>   
      #include   <atlwin.h>   
      #pragma   comment(lib,"atl")
      

  4.   

    不就是和调用一般的COM组件没有多大的区别么
      

  5.   

    好像不用这么麻烦的。我的控件是用MFC ActiveX Wizard生成的,希望在窗口中动态的创建。但是我调用CreateControl后总是出错。
      

  6.   

    http://support.microsoft.com/kb/156051/en-us
      

  7.   

    顶一下。再没人回答,我就要把MSDN看好了,到时候分数只能给自己啦
      

  8.   

    看了MSDN,感觉挺简单的,咋就是搞不定哩
      

  9.   

    确定你的activex控件实现了必要的接口.