本帖最后由 MK777 于 2010-03-29 21:09:13 编辑

解决方案 »

  1.   

    你可以把复现问题的代码发给我[email protected]
    我帮你看看
      

  2.   

    我用MFC一切按默认值创建一个最简单的Combobox的activex控件,只是在IsSubclassedControl下添加一句
    ModifyStyle(0, CBS_DROPDOWN|CBS_OWNERDRAWVARIABLE |CBS_HASSTRINGS);
    完了在Activex容器下调用就崩溃了
      

  3.   

    应该是没有调用AfxOleInit(),没有初始化OLE环境
      

  4.   


    我是在Activex control testcontainer 中测试的
      

  5.   

    当你试图modify style时
    m_hWnd和m_pCtrlSite都为空
    所以不行,请看如下代码,我跟进去看了一下BOOL CWnd::ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags)
    {
     ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));
     if (m_pCtrlSite == NULL)
      return ModifyStyle(m_hWnd, dwRemove, dwAdd, nFlags);
     else
      return m_pCtrlSite->ModifyStyle(dwRemove, dwAdd, nFlags);
    }
      

  6.   

    问题解决了,在PreCreateWindow里修改类型就行,具体原因不清楚