《ActiveX控件制作》PPT课件.ppt_第1页
《ActiveX控件制作》PPT课件.ppt_第2页
《ActiveX控件制作》PPT课件.ppt_第3页
《ActiveX控件制作》PPT课件.ppt_第4页
《ActiveX控件制作》PPT课件.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ActiveX控件制作,在系统开发过程中,控件的使用可以有效的帮助程序的开发,但是系统提供的控件不能满足用户的所以要求。于是我们可以开发满足自己要求的Activx控件。 下面介绍一个简单ACtivx控件的制作,1,新建MFC Activx control wizard工程,名为MyClock,选择创建空的工程。生成的控件有3个类和2个接口。 应用程序类:CMyclockApp 主窗口类:CMyclockCtrl 对话框类,显示控件属性页 CMyclockPropPage 接口是外部调用控件功能的函数集合, 一些纯虚函数,在主窗口类中进行实现,运行时选择下面的方式:控件是无法独立运行,必须使用容器来测试控件。 查看其方法和属性页:方法只有aboutBox,属性页为空。 下面学习添加属性和方法。,控件注册与注销,控件必须注册才可以使用。在globals中有注册函数DllRegisterServer和注销函数DllUnregisterServer。 Vc+编译控件时,最后对ACtivx控件调用全局函数进行注册。 可以手动注册:开始-运行-regsvr32 E:Clock.ocx 或者vc+-tool-register control 控件注销,使用regsvr32 程序, regsvr32 /u E:Clock.ocx 注销,默认生成的控件功能是在CMyclockCtrl :ondraw中画一个椭圆。可以修改为下面时间函数 CTime time=CTime:GetCurrentTime(); if(0=time.GetSecond() FireNewMinute(); CString str=time.Format(“%H:%M:%S“); pdc-TextOut(0,0,str); 得到时间时静止的,可以设置一个时钟函数,更新时间,添加常用属性页,MFC 提供了三个与 ActiveX 控件一起使用的常用属性页:CLSID_CColorPropPage、CLSID_CFontPropPage 和 CLSID_CPicturePropPage。 这些页分别显示常用颜色、字体和图片属性的用户界面。 添加:在MyclockCtl.cpp中找到 BEGIN_PROPPAGEIDS( CSampleCtrl, 4 ) PROPPAGEID( CMyPropPage:guid ) PROPPAGEID( CLSID_CFontPropPage ) PROPPAGEID( CLSID_CColorPropPage ) PROPPAGEID( CLSID_CPicturePropPage )END_PROPPAGEIDS(CSampleCtrl) 请注意,BEGIN_PROPPAGEIDS 宏中的属性页数为 4。它表示 ActiveX 控件支持的属性页数。,注意 如果不能访问控件常用属性页,可能是因为没有在当前的操作系统中正确地注册 MFC DLL (MFCxx.DLL)。导致这种情况的原因通常是安装了 Visual C+和。Net多个MFC库, 如果常用属性页不可见通过在命令行中用 DLL 的完整路径名运行 RegSvr32.exe 来注册 DLL。 。,添加自定义属性页,如果系统提供一个自定义属性页不够用。则按以下步骤添加: 1.ActiveX工程中,资源视图中“Dialog”节点,添加Dialog并选择 IDD_OLE_PROPPAGE_SMALL。并修改其名字。,2.在类向导中,添加新类,注意其基类和dialogID(选择你新建的对话框).,3程序中添加:程序中有个属性页表 添加头文件 #include “classname.h“ 修改属性表 BEGIN_PROPPAGEIDS(CClockCtrl, 4) PROPPAGEID(CClockPropPage:guid) PROPPAGEID(CLSID_CColorPropPage) PROPPAGEID(newPropPage:guid) PROPPAGEID(classname:guid) END_PROPPAGEIDS(CClockCtrl) 改变其总数,并将新建的属性页其加入 4. 完善属性页,二设置自定义属性页的名字 在资源的string table中添加两个string一个是新建属性页的标题,一个是新建属性页的名字。(在字符表中修改后,必须在程序中对应位置修改),我们先定义个设置的值是IDS_Camera_IP_CAPTION(名字)。,在这个属性页类的构造函数 由newPropPage:newPropPage() : COlePropertyPage(IDD,0) 改为:newPropPage:newPropPage() : COlePropertyPage(IDD, IDS_new_CAPTION) 结果出现错误:,4.错误是没定义标题,出现空指针。再定义一个标题: IDS_VIDEO_Camerapara(options标题) BOOL Ccameraparam:CcameraparamFactory:UpdateRegistry (BOOL bRegister) if (bRegister) return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(), m_clsid, IDS_VIDEO_Camerapara); else return AfxOleUnregisterClass(m_clsid, NULL); ,三属性页控件变量关联到属性 1.在项目类中添加一个属性propname(名字中不要有下划线)。 错误:Invalid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论