• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 得到了IWebBrowser2接口,如何让IE跳转到相应的页面?

得到了IWebBrowser2接口,如何让IE跳转到相应的页面?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了iwebbrowser2,iid iwebbrowser2,pn/ie接口,ie接口,ie不支持此接口等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 得到了IWebBrowser2 接口,如何让IE跳转到相应的页面?
描述:

IE7中,因为可以TAB页面,所以有这个问题,换句话说,我想让某个页面提到前面来!
如果在IE7以前,就好做了,IWebBrowser2提供HWND这样一个函数可以得到IE的窗口句柄,直接让这个窗口提到前面即可。


解决方案1:

Navigate

解决方案2:

应该是得到你需要的窗口然后ActiveWindow吧,应该和IE6没多少区别的。

解决方案3:

Navigate

解决方案4:

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=743273&SiteID=1
found solution. Spicific IE7 tab can be set as active via Active Accessability !
This is my very very first experemental but !!!WORKING!!! code !
I write it under BDS 2006, but it's must work under Visual studio to.
I hope it's helps:
void __fastcall TForm1::ActivateTab(TObject *Sender)
{
HRESULT hRes;
HWND MainIEWnd;
HWND CommandBarWnd;
HWND ReBarWnd;
HWND TabBandWnd;
HWND DirectUIWnd;
BSTR tabCaption;
long TabsCount=0,TabsReceived=0,newRes;
IAccessible *tabsAccess,*tabObject,*newObj;
IDispatch *tabDisp,*tab1;
VARIANT ChildStruct[10],tabStruct[10],tabQueryStruct,tabResStruct;
tabQueryStruct.vt=VT_I4;
tabQueryStruct.lVal=CHILDID_SELF;
/*
IE7 windows tree:
IEFrame
   |
   --CommandBarClass
        |
        --ReBarWindow32
           |
           --TabBandClass
              |
              --DirectUIHWND   <<<<< IE 7 Tabs here !!!
*/
MainIEWnd=FindWindow("IEFrame",NULL);
if(!MainIEWnd)
    {
    ShowMessage("DEBUG: Unable to find main IE window");
    return;
    }
CommandBarWnd=FindWindowEx(MainIEWnd,NULL,"CommandBarClass",NULL);
if(!CommandBarWnd)
    {
    ShowMessage("DEBUG: Unable to find CommandBarWindow");
    return;
    }
ReBarWnd=FindWindowEx(CommandBarWnd,NULL,"ReBarWindow32",NULL);
if(!ReBarWnd)
    {
    ShowMessage("DEBUG: Unable to find ReBarWindow32");
    return;
    }
TabBandWnd=FindWindowEx(ReBarWnd,NULL,"TabBandClass",NULL);
if(!TabBandWnd)
    {
    ShowMessage("DEBUG: Unable to find TabBandClass");
    return;
    }
DirectUIWnd=FindWindowEx(TabBandWnd,NULL,"DirectUIHWND",NULL);
if(!DirectUIWnd)
    {
    ShowMessage("DEBUG: Unable to find DirectUIHWND");
    return;
    }
if(AccessibleObjectFromWindow(DirectUIWnd,OBJID_CLIENT,IID_IAccessible,(void **)&tabsAccess)!=S_OK)
    {
    ShowMessage("DEBUG: Unable to get IAccessible interface");
    return;
    }
hRes=tabsAccess->get_accChildCount(&TabsCount); // get objects count
if(!SUCCEEDED(hRes))
    {
    ShowMessage("DEBUG: Unable to get Objects count");
    return;
    }
hRes=AccessibleChildren(tabsAccess,0,TabsCount,ChildStruct,&TabsReceived);
if(!SUCCEEDED(hRes))
    {
    ShowMessage("DEBUG: Unable to get objects");
    return;
    }
for(int i=0;i<TabsReceived;i++) // enum objects
    {
    if(ChildStruct.vt==VT_DISPATCH)
        {
        tabDisp=ChildStruct.pdispVal;
        hRes=tabDisp->QueryInterface(IID_IAccessible,(void **)&tabObject);
        if(!SUCCEEDED(hRes))
            {
            ShowMessage("DEBUG: QueryInterface to tabObject failed");
            continue;
            }
        hRes=tabObject->get_accRole(tabQueryStruct,&tabResStruct);
        if(!SUCCEEDED(hRes))
            {
            ShowMessage("DEBUG: Unable to receive object role");
            continue;
            }
        if(tabResStruct.lVal!=ROLE_SYSTEM_PAGETABLIST)  // we need only PageControl ! skip
            continue;                               // another contorls
        tabsAccess=tabObject; // we found PageControl with IE7 tabs !
        hRes=tabsAccess->get_accChildCount(&TabsCount);  // number of opened tabs + New Tab button
                if(!SUCCEEDED(hRes))
            {
            ShowMessage("DEBUG: tab count failed");
            continue;
            }
        hRes=AccessibleChildren(tabsAccess,0,TabsCount,tabStruct,&newRes);
        for(int j=0;j<newRes;j++)   // enum tabs
 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • IWebBrowser2::Navigate的问题
  • IWebBrowser2::Navigate的问题
  • 请教IWebBrowser2问题~~~~~~~~~在线等
  • 如何用IWebBrowser2判断当前窗口是否处于激活状态?
  • ATL下有没有包装过的(基础是IWebBrowser2)的浏览器控件可用?或者哪里有源代码可以下载?
  • 通过IWebBrowser2能获得IE中已经载入的其他插件的接口么?
  • 给定一个url,如何用IWebBrowser2接口获得该url的源码?
  • 如何在activex中得到IWebBrowser2指针???
  • 提问一个IWebBrowser2如何自动保存当前的文件啊,如果用EXECWB会弹出SAVE窗口,我想不让他弹出,比如自动保存到C:下,请问这个怎么搞啊,有点
  • 关于IWebBrowser2的get_Width,get_Height问题(解决后将加到200分,不够再加,多谢!)

相关文章

  • 2017-06-04 容器知识求助
  • 2017-06-05 求大神帮忙看看,怎么用sendmessage模拟输入法输出中文,达到以下效果
  • 2017-06-05 DLL的编译问题???请高手帮忙
  • 2017-06-05 有两个dll而且有相同的函数名和参数的隐式调用问题
  • 2017-06-05 VC中两个不同的程序如何通讯?(求解)
  • 2017-06-05 求教高手:一个新手对多线程的几点疑惑,请不吝指点,不胜感激!
  • 2017-06-04 水晶报表的英文名称是什么?具体在哪里能够下载?
  • 2017-06-04 BSTR类型转换不成功,仍然是乱码
  • 2017-06-04 filter问题,请教高手!
  • 2017-06-05 怎样使得exe文件在IE中运行,详情请进!

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 这个template在VC中怎么编译不过去呢!!!!:(
    • MSXML实现webservice时内存溢出,请大神
    • 大家好:网页中的flash如何和本地代码进行交互?
    • 调用LoadLibrary时,无法访问是什么原因?
    • Win32Dynamic-LinkLibrary方式
    • 关于在从线程中修改视图的问题?
    • 多重聚合与多重包容后,接口不能再访问了
    • 如何制作WORD的ActiveX控件?
    • vc操作word表格?
    • 怎么注册tlb?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有