ActiveX在IE中弹出的对话框能够不依赖于IE我写了一个ActiveX插件,发布到IE里,比如我ActiveX里有个方法TestDlg(),这个方法就是创建一个对话框,我把这个对话框设置了HWND_TOPMOST置顶,我在js里调用了这个方法,弹出了对话框,然后我再打开一个后面的窗口,此时点击置顶对话框的确定按钮,我希望能够保持当前窗口显示的位置不变,但结果是调用该ActiveX的IE窗口显示在最前面,其他的窗口都被挡住了,原因就是ActiveX的包容器就是IE,这个功能是模拟qq邮箱的截图功能,如何实现保持当前窗口显示的位置不变,请各位不吝赐教,谢谢!分不够再加~

解决方案 »

  1.   

    1、主 control .h 中声明 CPopDlg * m_PopDlg
    2、在主 control .cpp 中 用 create 方法 创建 一个 非模态对话框:
    m_PopDlg=new CPopDlg;
    m_PopDlg->Create(IDD_DIALOG1,this);
    m_PopDlg->ShowWindow(SW_HIDE);并设置  wndTopMostm_PopDlg->SetWindowPos(&CWnd::wndTopMost,x-320,y-245,300,200,SWP_NOACTIVATE);
    m_PopDlg->ShowWindow(SW_SHOW);这样就可以呀
      

  2.   

    SetWindowPos 的参数 有 窗口大小 和 位置 上面的 是 在屏幕右下角 显示一个 宽 300 高 200 的消息框
      

  3.   

    CPopDlg 是 创建的 一个 对话框 的 类
      

  4.   

    HWND_TOPMOST置顶 你已经把IE置顶啦,所以再打开另外一个程序,被覆盖@ 解决办法把置顶去掉@
      

  5.   

    正确的做法是将Activex载体做成独立的EXE进程的形式,拥有自己的消息循环。
    即使IE浏览器关闭Activex对话框也可以存在