none
IE10 + win8 ActiveX的问题 RRS feed

  • 问题

  •    我有一个ActiveX控件,以子窗体的形式嵌在网页中,用mfc开发,控件中有拖拽的动作,用COleDataSource实现(列表元素拖拽),最近发现拖拽操作在win8+IE10环境下失效。具体现象如下:

        1. 环境(目前只有win8+IE10的情况有问题)

           win8+IE10(鼠标操作)---------------------- 无效

           win8+IE10(IE7模式/兼容模式 鼠标操作)-- 无效

           win8+IE10(触屏操作)----------------------- OK

           win7+IE10 ------------------------------------- OK

            win8+IE7内核的其他浏览器 ------------------ OK

        2.现象

             出现拖放操作失败的现象是,开始拖拽极短时间之后,光标状态固定,不随光标移动而变化;

             spy++抓取源窗口(CListCtrl)消息,发现WM_HITTEST消息,但是坐标在极短时间后固定,不随光标移动变化;

             安装WH_GETMESSAGE的HOOK钩取消息,发现拖拽过程中无法收到WM_MOUSEMOVE消息(win7则有);

             网页子窗口(CXXXCtrl)的子窗口上启动的拖拽均出现以上现象;

             从ActiveX弹出的窗口(模式/非模式)启动拖拽没问题;

             从触屏进行拖拽操作,没问题,spy++抓取消息正常;

             拖拽全过程,打印CXXXCtrl的m_bUIActive,均为true。

        3.原因分析

            与环境有必然的联系;

            可能拖拽的动作与IE有所冲突,导致光标消息被留在IE,并没有发给控件。

      

       

        请各位帮忙分析原因,寻找解决方案。

        

    2013年11月11日 14:01

全部回复