落实实验八ActiveX控件的创建和使用.doc

落实实验八ActiveX控件的创建和使用.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验八 ActiveX 控件的创建和使用 一 实验目的 1 掌握基于MFC创建 ActiveX 控件的过程 2 掌握 ActiveX 控件的属性和事件的编程方法 3 了解非标准形状控件的编程方法 二 实验要求 8.1 创建一个控件,在控件上显示一串字符,设置属性,可以对显示的字符进行设置和修改;另一方面,设置两个事件,当鼠标移动时,将鼠标的位置告知,当鼠标左键压下时,产生另一个事件,告知鼠标位置。 编写测试程序,在对话窗口上使用编写的控件,可以输入在控件上待显示的字符,当鼠标在控件上移动时,在对话框上显示其坐标。当鼠标左键压下时,产生另一个事件,告知鼠标位置。 8.2 创建一椭圆形控件(或其它形状),双击后弹出颜色设置对话窗口,选择其中颜色,将控件颜色设置为选择的颜色。编写测试程序,在测试程序中测试控件的功能。 三 实验过程 实验1步骤:(1)首先利用MFC ActiveX ControlWizard 生成一个ActiveX控件程序的框架。在VC++开发环境中,选择【File\New】菜单项,在打开的对话框上选择Projects选项卡,并在列表框中MFC ActiveX ControlWizard,工程命名为:Example1。然后单击【OK】进入向导的第一步,直接单击【Finish】按钮保持所有默认设置不变。 说明:其中CExample1App类是从CWinApp派生的,所以可以把该类看作是一个应用程序类。CExample1Ctrl类是从CWnd类派生的,对控件窗口进行的操作都将在CExample1Ctrl类中完成。在CExample1Ctrl类的头文件中提供了消息映射、调度映射和事件映射。调度映射是为了让外部应用程序可以方便地访问控件的属性和方法,而事件映射让控件可以向包含它的容器发送事件通知。 Example1PropPage类派生于CDialog类,是用来显示Example1控件的属性页的,该类和一个ID为IDD_PROPPAGE_EXAMPLE1的对话框资源相对应。在上述介绍的三个类的上面还有两项内容:_DExample1 和_DExample1Events,它们都是接口。接口是控件与外部程序进行通信的协议。可以把接口看作是函数的集合,外部程序通过这个接口所暴露出来的方法去访问控件的属性和方法。实际上,可以把接口看作一个抽象基类,在此接口中定义的所有函数都是虚函数,这些函数的实现在CExample1Ctrl类中完成的。所以通过接口调用的函数实际上是调用CExample1Ctrl中的函数来实现的。 (2)ActiveX控件不能独立运行,它必须嵌入到一个容器中运行。编译并运行刚刚创建的工程,可以看到如图所示的对话框: 我们可以单击该对话框上标示了一个向右箭头的按钮,将弹出一个快捷菜单,选择【ActiveX Control Test Container】菜单项,也就是选择ActiveX Control Test Container这个应用程序作为Example1控件的容器。然后单击上图所示对话框的【OK】按钮关闭该对话框。这时将打开ActiveX Control Test Container这个应用程序,如下图所示: 于是我们可以加载特定的ActiveX控件了,方法是选择【Edit\Insert New Control...】菜单项,这时将打开如下图所示的对话框: 选中我们创建的Example1控件,单击对话框上的【OK】按钮关闭对话框,这时,在ActiveX Control Test Container应用程序中就加载了Example1控件。这时该控件的代码都是MFC自动生成的。 (3)控件功能的实现。首先将CExample1Ctrl类中OnDraw函数中自动生成的两行代码注释起来,它们分别用来填充控件的背景和绘制椭圆。然后为控件添加自定义属性,选择ClassWizard对话框上的Automation选项卡,然后单击【Add Property】按钮,将弹出属性对话框。在External name中填写属性名称为“SetText”,类型选择为“CString”,变量名被自动的设置为m_setText,而且ClassWizard为该控件增加了一个通知函数:OnSetTextChanged,当在外部修改属性时,这个函数将被调用。在添加属性对话框上还有三个单选按钮,保持默认选择的Member variable,当选择该选项后,ClassWizard会为该属性生成一个成员变量和一个通知函数。在CExample1Ctrl类的构造函数中对m_setText进行初始化,加入代码:m_setText="你好!";在通知函数OnSetTextChanged中加入代码如下:Invalidate();使窗口发生重绘调用OnDraw函数

文档评论(0)

aa15090828118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档