- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
查看Demo插件工程,如下图对于Windows平台框架,Firebreath生成两个主要对象FB::PluginCore派生类对象,主要与浏览器交互FB::JSAPIAuto派生对象,主要与JS交互注意:如何获取插件窗口句柄。FB::PluginWindowWin的定义需要引用头文件:“#includeWin/PluginWindowWin.h”在FB::PluginCore派生类对象中,可以通过下面方法得到插件窗口句柄:FB::PluginWindowWin?*pwnd?=?getWindow()-get_asFB::PluginWindowWin();??HWND?hwnd?=?pwnd-getHWND();??对于FB::JSAPIAuto派生对象,可以通过getPlugin()方法得到对应的FB::PluginCore派生对象,你可以用下面方法得到插件的窗口句柄:FB::PluginWindowWin*pwnd = getPlugin()-GetWindow()-get_asFB::PluginWindowWin(); HWND hwnd = pwnd-getHWND(); 实现一个简单的功能(与浏览器交互)转自/xiaomage234/archive/2012/08/28/386428.html其实上面这个例子已经实现了很多比较实用的功能了,可是我比较菜,只能看懂一小部分。我想实现一个用鼠标在plugin窗口上画线的功能。经过摸索,终于可以实现我想实现的这个功能了。下面是我的步骤:看程序的过程中我发现已经实现了鼠标按下,抬起,移动等事件的函数,但是函数体只有一个return语句,下图是所有已经实现的函数:看到这些函数,我想画线的函数就可以利用这三个鼠标事件来来完成吧。于是我做了如下工作。?1,定义几个私有成员变量(demo.h文件中):2,在构造函数中初始化一下(demo.cpp文件中):?3,先写onMouseDown和onMouseUp两个函数中的代码(作用:修改鼠标是否按下的状态)。如下图,框住的是添加的内容:?4,再来写鼠标移动时实现的功能,首先获取鼠标指针所在的点,与前面一样:m_mousePosXnew=evt-m_x; m_mousePosYnew=evt-m_y;就搞定了;然后就是画线的功能了(如果你对windows编程很熟悉就直接看后面的程序截图吧,因为我不熟悉,所以我将这个过程描述得详细一点,请理解),从old 的点画到new这个点。我虽然对windows程序开发不是很熟练,但是还是知道有个LineTo的函数,因此先就假设是LineTo(old,new)吧。于是就接下来写:if (b_isDown){LineTo(old, new);}最后,将new这一点保存为old的点:?m_mousePosXold= m_mousePosXnew; m_mousePosYold= m_mousePosYnew;所以这里就剩下搞清楚LineTo这个函数了,要实现从一个点画线到另一个点在windows中其实是这样实现的:HDC hDC;hDC=GetDC(hWnd);MoveToEx(hDC,m_mousePosXold,m_mousePosYold,NULL);LineTo(hDC,m_mousePosXnew,m_mousePosYnew);ReleaseDC(hWnd,hDC);上面这样实现了,要使用HDC以及MoveToEx和LineTo需要包含头文件PluginWindowWin.h。还差个HWND,如何得到这个HWND,我也说不清楚,我是看到例子FBTestPlugin中的代码才知道可以这样获取的:FB::PluginWindowWin *wnd = dynamic_castFB::PluginWindowWin*(win); HWND hWnd=wnd-getHWND();下面是FBTestPlugin的FBTestPlugin.cpp文件中的代码片段截图:经过尝试,终于完成了我想要实现的这个简单功能,再次感慨一下开发plugin对windows编程的基础能力还是有相当需求的。下面是完整的onMouseMove函数代码截图,框住的是添加的内容(注意在文件最前面添加头文件的引用#include PluginWindowWin.h):做完这些修改之后,在demo这个项目上选择仅用于项目-仅重新生成demo。等生成完毕之后,去前面的位置找到npdemo.dll复制到Firefox相应profile下的plugins目录,重新启动Firefox,打开那个测试页面。下面是运行效果,请忍受我的涂鸦,\(^o^)/~差不多了吧,这个简单的功能就这样了。或许再添加一个鼠标移出区域的事件,在其中将鼠标按下状态设为
您可能关注的文档
- BLINK 8192CU无线网卡接收使用 WIN7.pdf
- WinCC上位组态软件与西门子PLC建立通讯的几种方法.doc
- 美国大学申请之通用表格详述一.pdf
- 1-01网络基础1.ppt
- 1WLAN基础知识.ppt
- PIGSIGNI指示器操作手册.pdf
- 第五篇微波倍频器.pdf
- OPC技术信息系统培训.ppt
- 开始菜单里打印机传真打不开.pdf
- 人机交互终端 自助改变生活-附件.pdf
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
文档评论(0)