我用CHtmlView打开SINA首页,会弹出一个FLASH广告窗口,我在CHtmlView的OnNewWindow事件里做了处理,会用我自己的CHTMLVIEW创建一个新的窗口去弹出,不过当这个FLASH广告窗口弹出后,整个应用程序的主窗体,就会移动到当前所有桌面的最下面,不知道什么原因,请大家说说该怎么做?OnNewWindow事件里的代码         pNewView = theApp.CreateView();
{
*ppDisp = pNewView->GetApplication();
pNewView->Navigate2(strURL);
}
 *Cancel = VARIANT_TRUE;
 return;

}

解决方案 »

  1.   

    SetWindowPos(this->m_hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
    试试
      

  2.   

    "*ppDisp = pNewView->GetApplication();
    pNewView->Navigate2(strURL);
    "
    前面获取ppDisp干嘛呢?好像没有用到哦
    IWebBrowser2::Visible  这个方法似乎再navigate后也要用到
      

  3.   

    大家可以基于HTMLVIEW创建一个对话框,打开SINA首页活着登陆SINA邮箱,就会有弹出窗口,弹出的窗口就会使整个窗体更改为桌面所有窗体的最下面
      

  4.   

    那是因为sina的flash做了一个后置其所在程序主窗口的动作你可以在你的程序主窗口类中处理 WM_WINDOWPOSCHANGED 消息,来验证它确实发了这么个消息给你。然后针对它发的消息中的WINDOWPOS的值进行特殊处理。
      

  5.   

    是sina的js执行了blur函数,跟flash没关系
      

  6.   

    WM_WINDOWPOSCHANGED 这个消息我根本就不能区别出是否是由新弹出的网页引起的,我进入SINA邮箱也是,弹出窗口一下子就把整个窗体置于所有窗体最下面