



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AcitonX控件的创建和使用(VS2010)一、 ActionX控件的创建1 创建ActionX控件程序文件-新建-项目-Visual C+ - MFC - MFC ActionX控件2 创建ActionX控件的方法,属性和事件(不同于VC 6.0)(以控件MyActionX为例) 创建属性(方法) 在类视图中,MyActionXLib目录下右击_DMyActionX-添加属性(方法) 创建事件 在类视图中,右击CMyActionXCtrl-添加事件,而不是右击_DMyActionXEvents二、 ActionX控件的使用1 应用在MFC应用程序中例如创建一个基本对话框,则直接在对话框的任意处右击-Insert ActionX Control或者在项目上右击-“Class Wizard”-“Add Class”点击下拉菜单-“MFC Class From ActionX Control”-Add-选择即可。2 应用在网页上将.ocx文件打包成CAB格式的文件;(可参考此网站:/gengaixue/archive/2010/08/13/1799112.html准备找个时间试一下)获取ocx控件的ID,及.cab文件的路径;在网页中嵌入.注意:1.如何获取ocx控件的ID号,可通过VS自带的工具“OLE-COM Object Viewer”来查看,打开该工具,在“ALL objects”目录下可以找到自定义的控件,右击-“Copy CLSID to ClipBoard”。2. 当需要修改控件时,需要将正在使用该控件的应用程序关掉(如在MFC应用程序中),不然会报错。修改完之后需要先清理一下解决方案,然后再重新生成解决方案。补 充 -如何打包成CAB文件并且为其签名需要的工具:1. cabsdk.exe(是个压缩包)下的CABARC.EXE2. C:Program FilesMicrosoft SDKsWindowsv7.0Abin下的:Cert2Spc.exe,makecert.exe3. signtool.rar操作将这些工具拷贝到和控件在同一目录,在命令行中,到该目录下执行以下操作:1. makecert -sV MyactiveX.pvk MyactiveX.cer (密码:11)2. cert2spc MyactiveX.cer MyactiveX.spc3. cabarc -s 6144 n MyactiveX.cab *.ocx MyActiveX.inf4. 运行signcode.exe5. 验证是否签名成功: chktrust MyactiveX.cab页面中调用ActiveX控件及控件的方法具体的调用过程吧: Pdf1.src=c:/test.pdf; Pdf1.gotoFirstPage(); 上面,object对象为一个查看pdf的控件,classid为控件的id(必须的, 控件的标识),codebase为控件的地址, id 用于在页面上被js调用. 这些定义好了, 就可以调用了ActiveX控件中的方法调用页面中的JavaScript方法用c#实现两个COM类,IOleClientSite和IOleContainerComImport,Guid(00000118-0000-0000-C000-000000000046),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)public interface IOleClientSitevoid SaveObject();void GetMoniker(uint dwAssign, uint dwWhichMoniker, object ppmk);void GetContainer(out IOleContainer ppContainer);void ShowObject();void OnShowWindow(bool fShow);void RequestNewObjectLayout();ComImport, Guid(0000011B-0000-0000-C000-000000000046),InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)public interface IOleContainer void EnumObjects(In, MarshalAs(UnmanagedType.U4) int grfFlags, Out, MarshalAs(UnmanagedType.LPArray) object ppenum); void ParseDisplayName(In, MarshalAs(UnmanagedType.Interface) object pbc,In, MarshalAs(UnmanagedType.BStr) string pszDisplayName,Out, MarshalAs(UnmanagedType.LPArray) int pchEaten,Out, MarshalAs(UnmanagedType.LPArray) object ppmkOut);void LockContainer(In, MarshalAs(UnmanagedType.I4) int fLock);调用JavaScript方法在ActiveX控件的对应类中就可以编写如下的CallJavaScript方法:private void CallJavaScript(string Filenames)Type typeIOleObject = this.GetType().GetInterface(IOleObject,true); object oleClientSite = typeIOleObject.InvokeMember(GetClientSite,BindingFlags.Instance|BindingFlags.InvokeMethod|BindingFlags.Public, null, this, null); IOleClientSite oleClientSite2 = oleClientSite as IOleClientSite;IOleContainer pObj;oleClientSite2.GetContainer(out pObj);/参数数组object args = new object1;args0 = Filenames;/获取页面的Script集合IHTMLDocument pDoc2 = (IHTMLDocument)pObj;object script = pDoc2.Script;try/调用JavaScript方法OnScaned并传递参数,因为此方法可能并没有在页面中实现,所以要进行异常处理script.GetType().InvokeMember(OnScaned, BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, script
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年度六年级数学上册第一次月考上海专用沪教版2024参考答案
- 科四文明常识考试题目及答案
- 黑龙江职高高考试题语文及答案
- 专业技术岗b类考试真题及答案
- 2025年川留置看护人员招聘考试(综合知识)综合练习题及答案
- 2025酒精肝考试题及参考答案
- 融合边缘计算检测-洞察与解读
- 2025年长春市事业单位招聘考试综合类结构化面试真题模拟试卷
- 2025年江西省事业单位招聘考试综合类无领导小组讨论面试真题模拟试卷
- 2025年事业单位招聘新闻类试卷及答案详解助你轻松过关
- 2025年下半年四川甘孜州考试招聘事业单位人员138人考试参考试题及答案解析
- 2025年10月“江南十校”2026届新高三第一次综合素质检测 化学试卷(含答案详解)
- RCT临床试验课题申报书模板及示范
- 7.水受热遇冷会怎样(教学设计)-四年级上册科学人教鄂教版
- 2025-2030FTTR家庭组网标准演进与市场渗透策略研究
- 屠宰兽医检验考试题及答案
- 2025年成人高考专升本《政治》真题含答案
- 内蒙古信息技术考试题库及答案
- 第四课 建设法治中国说课稿-2025-2026学年初中道德与法治统编版五四学制九年级上册-统编版五四学制2018
- 园林古建筑防雷设计方案
- GB/T 13591-2025乙炔气瓶充装规定
评论
0/150
提交评论