我用ATL创建了一个无窗口的控件,嵌入到网页中,当点击控件的时候加载一个FLASH
,其中创建FLASH容器的句柄是这样得到的: CComPtr < IOleClientSite > spClientSite; GetClientSite( &spClientSite ); CComQIPtr < IOleInPlaceSite > spSite = spClientSite; HWND hwnd1; spSite->GetWindow( &hwnd1 ); 得到的。其中加载FLASH的代码是在OnDraw函数里面写的。跟的时候控件的区域一直在变,但是在网页中拖动滚动条的时候,FLASH还是那么大。是什么问题?

解决方案 »

  1.   

    我用ATL创建了一个无窗口的控件,嵌入到网页中,当点击控件的时候加载一个FLASH
    ,其中创建FLASH容器的句柄是这样得到的: CComPtr < IOleClientSite > spClientSite; GetClientSite( &spClientSite ); CComQIPtr < IOleInPlaceSite > spSite = spClientSite; HWND hwnd1; spSite->GetWindow( &hwnd1 ); 得到的。其中加载FLASH的代码是在OnDraw函数里面写的。跟的时候控件的区域一直在变,但是在网页中拖动滚动条的时候,FLASH显示的还是那么大,而且刷新页面FLASH也不销毁.加载FlASH之后,控制权就不是了,我怎么把控制权交给IE呢?
      

  2.   

    在OnDraw里面加载FLASH本身就很不合适。
    建议操纵页面DOM,在DOM中添加<object...></object>标签来加载FLASH,可以设置成跟控件自身相同的样式,然后把本身控件隐藏起来。
      

  3.   

    从控件自身获得容器,从容器获得IHTMLDocument2接口,然后进行DOM导航,添加object元素,获取添加的IHTMLObjectElement接口,查询出flashplayer的接口再进行控制