CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  Visual C++ 资源

如何给资源管理器或者IE加一个工具栏?

楼主Tasehouny(阿甘)2000-12-26 22:10:00 在 VC/MFC / Visual C++ 资源 提问

象搜狐的新闻搜索器那样?  
  还有如何给IE加一个按钮?  
  请各位给一个例子?或者给一些资源 问题点数:20、回复次数:4Top

1 楼silver(Bai)回复于 2000-12-26 22:54:00 得分 10

关于如何给IE加一个按钮已经有很多讨论了,这里转贴一篇文章,希望对你有帮助:  
   
   
  首先要感谢金山词霸2000哈,嘻嘻!我是在一次安装金山词霸时偶然发现注册表的某些“变化”,进而摸索出这条技术的。  
   
    说真的,如今的programmer无一例外地整天在网上搜索并使用着先人给我们留下的大量宝贵的免费代码。呜呼!谨以此plug-in献给那些整天在“幕后”给我们默默写代码的无名英雄们,我们的软件有一部分属于你们!!!!!向你们致敬!  
   
  废话就这么多,打开VC,我们自己做一个ie   toolbar   extension   button吧!:-)   let's   go!  
   
  建立一个ATL工程的方法不用说乐吧?(看看《ATL大扫盲之2.5   &   2.6吧》)选File->New->ATL   Com   Wizard,起个your   gril   friend的名字,比如我就起了个“梁咏琪”怎么样?够cool吧?!....然后全部取默认值!以前说的比脸还干净的组件库就生成了!  
   
  然后Insert->New   ATL   Object....选Object组中的“Simple   Object”,下一步,在Short   Name中输入“DM_IE_TBBtn”,然后(全部接受默认值)按OK。瞧!我们又生成了一个比脸还干净的接口!这就是我们的IE工具栏啦哈!你也许会说,现在这个接口能干P呀?!哈!接着往下看哪!...  
   
  要让我们的接口能在IE工具栏中响应用户点击,一个重要的工作是让它实现IOleCommandTarget接口。为什么?嘻嘻!这个问题我可以不回答吗?:-)   看资料呗!.....那么如何实现该接口?别指望App   Wizard乐,手工干吧!  
   
  双击左边的CDM_IE_TBBtn再到右边的类定义中添加IOleCommandTarget支持....  
   
   
  #include     //   IOleCommandTarget在这儿,先去他家把他请出来8然后:class   ATL_NO_VTABLE   CDM_IE_TBBtn   : public   IOleCommandTarget, public   CComObjectRootEx,....再:BEGIN_COM_MAP(CDM_IE_TBBtn) COM_INTERFACE_ENTRY(IOleCommandTarget).....最后在类的public段中添加接口定义: /////////////////////////////////////////// //   IOleCommandTarget   Implementation       STDMETHOD   (QueryStatus)   (const   GUID   *pguidCmdGroup, ULONG   cCmds, OLECMD   prgCmds[], OLECMDTEXT   *pCmdText); STDMETHOD   (Exec)   (const   GUID   *pguidCmdGroup, DWORD   nCmdID, DWORD   nCmdExecOpt, VARIANTARG   *pvaIn, VARIANTARG   *pvaOut); //   End   of   IOleCommandTarget   Implementation ////////////////////////////////////////////  
  完了?啊!8-|   就这么简单?啊!没搞错吧?当然没有!  
   
  下面再打开EM_IE_TBBtn.cpp添加接口实现就OK乐!  
   
   
  STDMETHODIMP   CDM_IE_TBBtn::QueryStatus(const   GUID   *pguidCmdGroup, ULONG   cCmds, OLECMD   prgCmds[], OLECMDTEXT   *pCmdText){ if(   !   prgCmds   ) return   E_POINTER; for(ULONG   i   =   0;   i   <   cCmds;i++) prgCmds[i].cmdf   =   OLECMDF_SUPPORTED   |   OLECMDF_ENABLED; return   S_OK;}STDMETHODIMP   CDM_IE_TBBtn::Exec(const   GUID   *pguidCmdGroup,     DWORD   nCmdID,     DWORD   nCmdExecOpt,     VARIANTARG   *pvaIn,     VARIANTARG   *pvaOut){ switch(   nCmdExecOpt   )   { case   OLECMDEXECOPT_DODEFAULT: MessageBox(NULL,_T("天哪!这么简单?!"),_T("这就是插件?!"),MB_OK); break; default: break; } return   S_OK;}  
   
  理论上我们的插件就可以使用了,但我们还需要将它插到IE里,请注意  
  HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Internet   Explorer\\Extension子键!嘻嘻!好了,到此为止,聪明的你已经知道一切了,剩下的事就不用我说了,在上载的源代码中有readme.htm说得十分详细,大家自己读一读吧!  
   
  http://vg1.homeip.net/pub/DM_IE_PlugIn.zip  
   
  Top

2 楼zhangzhonghua()回复于 2000-12-27 17:53:00 得分 10

Dino   Esposito   是这方面的高手,我翻译了一篇他的文章"定制IE   5.0".  
   
  http://www.zzh-cn.com/translations/cutting1199.htmTop

3 楼vcmfc(【痛苦的虫虫】)回复于 2000-12-27 18:19:00 得分 0

还有到www.vckbase.com上都有Top

4 楼The_east_key(东方一键)回复于 2000-12-28 17:10:00 得分 0

请到http://www.etechbase.net/advsearch.php,将你这个问题输入到检索框,然后选择准确匹配查询,应该可以帮助你解决这个问题的。  
   
  http://www.etechbase.net/tech.php也许能够帮助你。Top

相关问题

  • 【求助】win2000的资源管理器,标题和工具栏没了
  • 瘟2000资源管理器的菜单栏和工具栏都不在了
  • 两个问题:资源管理器工具栏的图标资源保存在那个DLL里面?....
  • 资源管理器的工具栏上,"查看"按钮的选项在VB中如何实现?
  • 资源管理器的工具栏图标变成空白图加1、2、3等?怎么办。
  • 我想做一个按钮(图标)到windows的资源管理器上面的工具栏里面
  • 资源管理器
  • 我被这个问题逼疯了!ie和资源管理器
  • IE和资源管理器的问题???(急)
  • windows 资源管理器

关键词

  • 接口
  • ie
  • atl
  • tbbtn
  • iolecommandtarget
  • 工具栏
  • prgcmds
  • cdm
  • pguidcmdgroup
  • 添加

得分解答快速导航

  • 帖主:Tasehouny
  • silver
  • zhangzhonghua

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo