- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验八 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函数,在
您可能关注的文档
- 2004年版最新电力设计标准规程规范实用手册_部分1.pdf
- DLT 799-2010 电力行业劳动环境监测技术规范_部分3.pdf
- DLT 5369-2007 电力建设工程量清单计价规范 火力发电厂工程_部分2.pdf
- DLT 1033-2006 电力行业词汇 全套 1-12部分_部分1.pdf
- DLT 535-2009 电力负荷管理系统数据传输规约_部分2.pdf
- GB 50217-2007电力工程电缆设计规范_部分2.pdf
- GB 50217-2007电力工程电缆设计规范_部分1.pdf
- DLT 5210.3-2009 电力建设施工质量验收及评价规程 第3部分:汽轮发电机组_部分3.pdf
- 平访天津职工工业技术学院网管设备明细.doc
- 几何画板培训讲稿及方案应用.doc
最近下载
- 职业培训学校安全管理制度(3).docx VIP
- 武汉理工大学教室使用申请表.doc VIP
- 2024人教精通版三年级上册英语全册教学设计.docx VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 中职物理 第1章 运动和力 课件.pptx VIP
- 2024年08月广东河源市东源县卫生健康局招聘大学生乡村医生人员笔试历年专业考点(难、易错点荟萃)附带答案详解 .doc
- 铺子山隧道斜井进入正洞施工方案(定).pdf VIP
- 大学教室调度管理规定.docx VIP
- SHT 3503 -2017交工资料填写样表.pdf VIP
- 四川省成都市双流区2024年小升初语文试卷 附解析 .pdf VIP
文档评论(0)