ATL编写的ATL控件在IE7,8,9,10(兼容性视图)中无法创建窗口,m_hWnd一直为NULL
开发环境是 Win7 64位 + VS2010 + IE10, 建立的是ATL项目,选择了支持MFC。
我的控件功能之一,就是js捕获控件的事件,然后进行响应处理。
控件在 IE10 默认情况下运行正常。
但是在标题中提到的各种情况下都不正常了,直接效果就是 控件对象的 m_hWnd 为 NULL.
(一开始是在纯IE8中发现的不正常,后来在IE10里切换模式,问题重现了。。)
我调试了一下,发现在正常的情况下,会调用 IOleObjectImpl::DoVerb 这个方法,进而传递 OLEIVERB_INPLACEACTIVATE,想是在这个case下创建了窗口。
但在不正常的情况下,不会调用那个方法。
我也只能找到这里了,哪位大侠指导一下?感谢!