• 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 > 能不能用BHO控制IE的弹出菜单??

能不能用BHO控制IE的弹出菜单??

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

佚名通过本文主要向大家介绍了ie bho,bho,bho插件是什么,thunder bho platform,bho美剧等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 能不能用BHO控制IE的弹出菜单??
描述:

看了MSDN上文章,BHO能够相应IE的事件,但是没有提到怎么用BHO控制IE的界面。我也看到过控制浏览器界面的文章,但都是关于WebBrowser控件的,不知道用BHO能不能实现???


解决方案1:

怎样用VC调用IE浏览器并定制右键的快捷菜单?
找一下IDocHostUIHandler::ShowContextMenu 
The WebBrowser Control gets its shortcut menu resources from Shdoclc.dll. That knowledge and a few #defines gives you a chance to manipulate the browser's menu. Let's say for instance that you're happy with the default menu, except for the View Source option, which you'd like to eliminate. The following code loads the WebBrowser Control shortcut menu resource from Shdoclc.dll, chooses the correct menu for the context, removes the menu item corresponding to the IDM_VIEWSOURCE command, then displays the menu.
Hide Example
HRESULT CBrowserHost::ShowContextMenu(DWORD dwID,
                                      POINT *ppt,
                                      IUnknown *pcmdTarget,
                                      IDispatch *pdispObject) 
{
    #define IDR_BROWSE_CONTEXT_MENU  24641
    #define IDR_FORM_CONTEXT_MENU    24640
    #define SHDVID_GETMIMECSETMENU   27
    #define SHDVID_ADDMENUEXTENSIONS 53
    HRESULT hr;
    HINSTANCE hinstSHDOCLC;
    HWND hwnd;
    HMENU hMenu;
    CComPtr<IOleCommandTarget> spCT;
    CComPtr<IOleWindow> spWnd;
    MENUITEMINFO mii = {0};
    CComVariant var, var1, var2;
    hr = pcmdTarget->QueryInterface(IID_IOleCommandTarget, (void**)&spCT);
    hr = pcmdTarget->QueryInterface(IID_IOleWindow, (void**)&spWnd);
    hr = spWnd->GetWindow(&hwnd);
    hinstSHDOCLC = LoadLibrary(TEXT("SHDOCLC.DLL"));
    hMenu = LoadMenu(hinstSHDOCLC,
                     MAKEINTRESOURCE(IDR_BROWSE_CONTEXT_MENU));
    hMenu = GetSubMenu(hMenu, dwID);
    // Get the language submenu
    hr = spCT->Exec(&CGID_ShellDocView, SHDVID_GETMIMECSETMENU, 0, NULL, &var);
    mii.cbSize = sizeof(mii);
    mii.fMask  = MIIM_SUBMENU;
    mii.hSubMenu = (HMENU) var.byref;
    // Add language submenu to Encoding context item
    SetMenuItemInfo(hMenu, IDM_LANGUAGE, FALSE, &mii);
    // Insert Shortcut Menu Extensions from registry
    V_VT(&var1) = VT_INT_PTR;
    V_BYREF(&var1) = hMenu;
    V_VT(&var2) = VT_I4;
    V_I4(&var2) = dwID;
    hr = spCT->Exec(&CGID_ShellDocView, SHDVID_ADDMENUEXTENSIONS, 0, &var1, &var2);
    // Remove View Source
    DeleteMenu(hMenu, IDM_VIEWSOURCE, MF_BYCOMMAND);
    // Show shortcut menu
    int iSelection = ::TrackPopupMenu(hMenu,
                                      TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD,
                                      ppt->x,
                                      ppt->y,
                                      0,
                                      hwnd,
                                      (RECT*)NULL);
    // Send selected shortcut menu item command to shell
    LRESULT lr = ::SendMessage(hwnd, WM_COMMAND, iSelection, NULL);
    FreeLibrary(hinstSHDOCLC);
    return S_OK;
}
HOWTO: Adding to the Standard Context Menus of the WebBrowser Control Q177241


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

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

  • 在一个ie(BHO,band)插件中如何控制ie的弹出窗口的。
  • 如何使用BHO监听IE中按钮的触发
  • 正在做ie的bho,调试需要iexploreexe的symble文件,那里有?
  • [BHO]关于使用IDocHostUIHandler自定义IE右键菜单的问题
  • (BHO)如何制作自定义IE右键菜单
  • BHO编程中遇到:注册后无法打开IE的问题???
  • BHO监控IE上鼠标选择并拖动某块区域(文本)
  • BHO是否可以响应切换IE消息
  • 已经在IE中建立了一个BHO,如何获得鼠标在文档区的消息?
  • 请问如何利用BHO限制IE下载图片,禁止运行脚本等功能?

相关文章

  • 2017-06-04 如何对一个在网上发布的DLL进行数字签名
  • 2017-06-04 控件=组件?有何区别?答者有分
  • 2017-06-05 大家来讨论一下线程类的问题
  • 2017-06-05 在DLL中创建对话框,造成泄漏
  • 2017-06-04 我在vs2005写了一个activex,怎么在页面调用啊?急啊,谢谢了
  • 2017-06-04 如何vc让导出的tlh文件能带有默认的参数?
  • 2017-06-05 怎样才能知道系统是在锁定状态和由锁定状态登录回到一般状态??谢谢!
  • 2017-06-04 wtl项目编译错误,帮忙看下
  • 2017-06-04 怎样并排放两个CToolBarCtrl?
  • 2017-06-04 VC2005使用WebBrowser显示EXCEL问题

文章分类

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

最近更新的内容

    • 兼通Java和VC的高手请进,高分求教!
    • HowtohandlescripterrorsasaWebBrowsercontrolhost
    • vc串口读取信号问题
    • 创建GUI线程的弱问题!!!
    • 怎样才可以把我的DLL插入到WINLOGON这个进程
    • 自定义控件传递图片参数
    • 如何把VOID类型转换为COM中的类型
    • 关于用detours截获API的问题
    • UDP接收结构体结构体内不能包含CString吗?
    • VS2005加的ActiveX控件产生类和vc6产生的类不一致的问题

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

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