ACTIVEX网页控件开发(详细)
使用MFC开发ActiveX(ocx)控件

作者: 中国电波传播研究所青岛分所郎锐时间: 2004-03-09出处: yesky一、前言二、建立工程框架三、属性、方法以及事件的添加四、实现属性表五、在包容程序中使用ActiveX控件六、小结前言ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件。
ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精华,如可链接对象、统一数据传输、OLE文档、属性页、永久存储以及OLE 自动化等。
ActiveX控件作为基本的界面单元,必须拥有自己的属性和方法以适合不同特点的程序和向包容器程序提供功能服务,其属性和方法均由自动化服务的IDispatch接口来支持。
除了属性和方法外,ActiveX控件还具有区别于自动化服务的一种特性--事件。
事件指的是从控件发送给其包容程序的一种通知。
与窗口控件通过发送消息通知其拥有者类似,ActiveX控件是通过触发事件来通知其包容器的。
事件的触发通常是通过控件包容器提供的 IDispatch接口来调用自动化对象的方法来实现的。
在设计ActiveX控件时就应当考虑控件可能会发生哪些事件以及包容器程序将会对其中的哪些事件感兴趣并将这些事件包含进来。
与自动化服务不同,ActiveX控件的方法、属性和事件均有自定义(custom)和库存(stock)两种不同的类型。
自定义的方法和属性也就是是普通的自动化方法和属性,自定义事件则是自己选取名字和Dispatch ID的事件。
而所谓的库存方法、属性和事件则是使用了ActiveX控件规定了名字和Dispatch ID的"标准"方法、属性和事件。
ActiveX控件可以使COM组件从外观和使用上能与普通的窗口控件一样,而且还提供了类似于设置Windows标准控件属性的属性页,使其能够在包容器程序的设计阶段对ActiveX控件的属性进行可视化设置。
ActiveX控件提供的这些功能使得对其的使用将是非常方便的。
activeX 网页应用开发指南

Reader 控件函数库目录目录 (2)1.1 控件注册 (5)1.2 读卡器功能开发流程 (6)1.2.1 设备驱动的打开与关闭 (6)1.2.2 获取天线感应区的标签 (6)1.2.3标签数据区的读写 (8)2.编程接口 (11)2.1 读卡器通用接口 (11)2.1.1 RDR_OpenPort (11)2.1.2 RDR_OpenUSB (12)2.1.3 RDR_OpenNet (13)2.1.4 RDR_Close (14)2.1.5 COMPort_Enum (15)2.1.6 COMPort_GetEnumItem (16)2.1.7 RDR_InitInventory (17)2.1.8 RDR_Enable15693 (18)2.1.9 RDR_Enable14443A (19)2.1.10 RDR_Inventory (20)2.1.11 RDR_GetRecordCnt (21)2.1.12 GetRecord (22)2.13 RDR_FinishInventory (23)2.1.14 RDR_SetCommuImmeTimeout (24)2.1.15 RDR_ResetCommuImmeTimeout (25)2.1.16 RDR_SetAcessAntenna (26)2.1.17 RDR_OpenRFTransmitter (27)2.1.18 RDR_CloseRFTransmitter (28)2.1.19 RDR_GetOutputCount (29)2.1.20 RDR_GetOutputName (30)2.1.21 RDR_GetReaderInfor (31)2.1.22 RDR_TagDisconnect (32)2.1.23 RDR_SetOutput (33)2.1.24 RDR_GetReaderLastReturnError (34)2.2 ISO15693协议通用接口 (35)2.2.1 ISO15693_Connect (35)2.2.2 ISO15693_ReadSingleBlock (36)2.2.3 ISO15693_WriteSingleBlock (37)2.2.4 ISO15693_ReadMultiBlocks (38)2.2.5 ISO15693_WriteMultipleBlocks (39)2.2.6 ISO15693_LockBlock (40)2.2.7 ISO15693_WriteAFI (41)2.2.8 ISO15693_LockAFI (42)2.2.9 ISO15693_WriteDSFID (43)2.2.11 ISO15693_GetSystemInfo (45)2.2.12 ISO15693_LockMultipleBlocks (46)2.3 NXP ICODE-SLI自定义命令 (47)2.3.1 NXPICODESLI_EableEAS (47)2.3.2 NXPICODESLI_DisableEAS (48)2.3.3 NXPICODESLI_LockEAS (49)2.3.4 NXPICODESLI_EASAlarm (50)2.4 NXP ICODE-SLIX 自定义命令 (51)1.4.1 NXPICODESLIX_EableEAS (51)2.4.2 NXPICODESLIX_DisableEAS (52)2.4.3 NXPICODESLIX_LockEAS (53)2.4.4 NXPICODESLIX_EASAlarm (54)2.4.5 NXPICODESLIX_GetRandomNum (55)2.4.6 NXPICODESLIX_SetPassword (56)2.4.7 NXPICODESLIX_WritePassword (57)2.4.8 NXPICODESLIX_LockPassword (58)2.4.9 NXPICODESLIX_PasswordProtect (59)2.5 Tag-it HF-I plus 自定义命令 (60)2.5.1 TIHFIPLUS_Write2Blocks (60)2.5.2 TIHFIPLUS_Lock2Blocks (61)2.6 ST M24LR16E 自定义命令 (62)2.6.1 STM24LR16E_UpdatePassword (62)2.6.2 STM24LR16E_AuthPassword (63)2.6.3 STM24LR16E_ActivateSectorSecurity (64)2.6.4 STM24LR16E_ReadCFGByte (65)2.6.5 STM24LR16E_SetCFGEH (66)2.6.6 STM24LR16E_SetCtrlRegEHEN (67)2.6.7 STM24LR16E_ReadCtrlReg (68)2.7 ST M24LR64 自定义命令 (69)2.7.1 STM24LR64_UpdatePassword (69)2.7.2 STM24LR64_AuthPassword (70)2.7.3 STM24LR64_ActivateSectorSecurity (71)2.8 mifare classic (S50和S70)函数接口 (72)2.8.1 MFCL_Connect (72)2.8.2 MFCL_ReadBlock (73)2.8.3 MFCL_WriteBlock (74)2.8.4 MFCL_Authenticate (75)2.8.5 MFCL_Increment (76)2.8.6 MFCL_Decrement (77)2.8.7 MFCL_Restore (78)2.8.8 MFCL_FormatValueBlock (79)2.8.9 MFCL_CreateAccessCondition (80)2.8.10 MFCL_Sector2Block (81)2.8.12 MFCL_IsTailerBlock (83)2.9 mifare ultralight 函数接口 (84)2.9.1 ULTRALIGHT_Connect (84)2.9.2 ULTRALIGHT_Read (85)2.9.3 ULTRALIGHT_Write (86)2.9.4 ULTRALIGHT_LockPage (87)2.9.5 ULTRALIGHT_LockBlock (88)2.9.6 ULTRALIGHT_ReadMultiplePages (89)2.9.7 ULTRALIGHT_WriteMultiplePages (90)2.9.8 ULTRALIGHT_Authenticate (91)2.9.9 ULTRALIGHT_UpdatePassword (92)2.9.10 ULTRALIGHT_UpdateAuthConfig (93)2.9.11 ULTRALIGHT_AuthenSafe (94)3. 空中接口协议类型编码和标签类型编码定义 (95)3.1.空中接口协议类型编码定义 (95)3.2. 标签类型编码定义 (95)3.2.1. ISO15693标签类型编码定义 (95)3.2.2. ISO14443A 标签类型编码定义 (95)4. RFIDLIB API错误代码表 (96)1.控件调用流程1.1 控件注册进入目录“.\rfid_reader-读卡器开发包\HF-高频\samples\activeX\ocx”,如图1-1所示。
ActiveX网页控件

三 、 实 现
1 .项 目
打 开 Vsa S d . e 2 0 ,建 立 _ 个解 决 方 案 或项 目 i l t i N t 05 u u o 一
D a U B e。 在项 目类 型 中选 择 Vsa C+ +下 的 A L 项 , en S K y i l u T 选 在 模 板 中选 择 “ T r et ,项 目名 为 D aU B e。 点 击 A L Po c” j en S K y 确 定 , 系统 就 在 指 定 的 目录 下 建 了 D a U B e en S K y项 目和 解 决
维普资讯
- 一
。 … 一
实用第一 智慧 密集
… … … … . … … … … … … … . … … . … 。
A t e 网 页 件 cvX i 控
张德 强
摘
要 A t e ci X插件技 术 广泛地 运 用 于 B S系统 中 ,本 文 通过 一 个项 目实例 ,详 细介 绍 用 v /
一
控件来完成读取硬件 U B K Y的信息 。硬件 U B K Y选用飞 S E S E
天 诚 信 的 e as0 0 D产 品 。 Psl0 N
个 产 生 C+ +/ O 代 码 的 框 架 , 专 门 用 于 开 发 C M 组 C M O
件 。A L提 供 了小 巧 、高效 、灵 活 的 类 ,这 些 类 为 创 建 可 相 互 T 操 作 的 C M 组 件 提 供 了 基 本 的设 施 。 A L完 全 面 向 C M 组 O T O 件 ,其 结 构完 全 针 对 C M 中 的诸 多规 范 。 是编 写 C M 组 件 的 O O
在 C M 模 型 中 ,对 象 本 身 对 于 客 户 来 说 是 不 可 见 的 ,客 O 户 请 求 服 务 时 ,只 能通 过 接 口进 行 。 一 接 口是 不会 改 变 的 。 般
microsoft web browser activex使用方法

microsoftwebbrowseractivex使用方法**一、概述**ActiveX是一种由Microsoft开发的控件,可用于在Web浏览器中嵌入和执行各种应用程序。
它允许开发人员创建在Internet上运行的自定义应用程序,并提供了一个方便的集成方式。
ActiveX也广泛用于Microsoft的InternetExplorer浏览器中。
**二、安装和启用**要使用ActiveX,首先需要确认您的操作系统是否支持。
通常,大多数现代操作系统都内置了ActiveX的支持。
对于Windows操作系统,您可以按照以下步骤进行安装和启用:1.打开控制面板,并找到“程序和功能”选项。
2.在程序列表中找到并选中“InternetExplorer”,然后点击“打开或关闭Windows功能”。
3.在打开的窗口中,找到ActiveX控件和插件复选框,勾选它们以启用ActiveX。
4.确认更改并重启浏览器。
**三、使用方法**一旦ActiveX被启用,您就可以在Web浏览器中使用它了。
下面是一些基本的使用方法:1.打开InternetExplorer并访问一个包含ActiveX控件的网站。
2.通常,您不需要做任何特殊操作,因为ActiveX控件会自动在您的浏览器中加载并开始工作。
3.如果您需要更改ActiveX控件的设置或属性,通常可以在浏览器的工具栏中找到相关的选项或菜单项。
4.如果您遇到任何问题或错误,请尝试查看浏览器的错误报告或调试工具,以获取更多信息。
**四、注意事项**1.请注意,不是所有的网站都支持ActiveX控件。
一些网站可能会阻止或限制ActiveX的使用,以保护用户的安全和隐私。
2.某些ActiveX控件可能包含不安全的漏洞,因此请务必保持您的浏览器和操作系统更新到最新版本,以获得最佳的安全性。
3.避免在不信任或不安全的网站上加载和使用未知来源的ActiveX控件。
总的来说,MicrosoftWeb浏览器中的ActiveX使用相对简单和直观。
QtActiveX开发、调用、调试(带附件)

QtActiveX开发、调用、调试(带附件)
Qt ActiveX创建、调用和调试
1.创建并设置工程
vs2008新建Qt ActiveX工程:
下一步默认选择,加载Core library、GUI library、ActiveQt server library,默认下一步,finish.
设置工程的属性:
属性->配置属性->调试命令:在用浏览器测试ocx的时候用得到,建议填写IE的绝对路径;命令参数:填写嵌入你的ocx的html的绝对路径。
2.在第一部设置好后,随便写几个信号和槽链接,生成一个dll组件(Active 控件可使ocx或dll,我这里是dll),将生成的dll用depends工具查看该dll的所有依赖项,将所有的依赖项拷贝到当前目录,编写ActiveX控件注册脚本,将regsvr32.exe ActiveXTest.dll 重命名为reg.cmd放在生成目录下,双击此文件等待注册成功:
我的生成目录:
3.编写html脚本嵌入ocx
如果ocx想要通过IE浏览器调用,则必须编写html脚本掉用控件,通常的例子如下,保持你的html路径与你在设置工程时的路径一致。
acitvex 的原理

acitvex 的原理
ActiveX 是一种基于微软的 COM 技术的框架,用于开发可重用
的软件组件。
它允许开发者创建可嵌入到其他应用程序中的功能丰
富的组件,例如控件、插件等。
ActiveX 的原理涉及以下几个方面:
1. COM(Component Object Model),ActiveX 是基于 COM 的,COM 是一种面向对象的编程模型,它定义了组件之间的交互方式。
COM 组件可以通过接口来相互通信和交互,这种松耦合的设计使得
组件可以被灵活地组合和重用。
2. 封装和封装,ActiveX 组件通常以动态链接库(DLL)的形
式存在,它封装了特定功能的代码和数据。
这些组件可以被其他程
序引用和调用,使得开发者可以利用这些组件的功能而无需重复编
写代码。
3. 安全性,ActiveX 组件可以被网页引用,因此安全性是一个
重要考虑因素。
为了确保安全,ActiveX 组件需要经过数字签名和
用户授权才能被下载和执行。
此外,浏览器通常会对 ActiveX 控件
进行安全设置,以防止恶意控件对系统造成损害。
4. 与浏览器的集成,ActiveX 控件可以嵌入到网页中,通过浏览器来展示和运行。
这种集成方式使得开发者可以为网页添加丰富的交互功能,例如多媒体播放、数据输入等。
总之,ActiveX 的原理涉及到基于 COM 的组件模型、封装和封装技术、安全性和与浏览器的集成等方面。
它为开发者提供了一种灵活、可重用的组件开发和集成方式,使得软件开发更加高效和便利。
web上用Activex控件开发步骤

hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,
NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr);
// 标记控件初始化安全.
// 创建初始化安全组件种类
hr = CreateComponentCategory(CATID_SafeForInitializing,
L"Controls safely initializable from persistent data!");
if (SUCCEEDED(hr))
{
// Register this category as being "implemented" by the class.
CATID rgcatid[1] ;
rgcatid[0] = catid;
return ResultFromScode(SELFREG_E_TYPELIB);
if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))
return ResultFromScode(SELFREG_E_CLASS);
// CICCardApp::ExitInstance - DLL termination
int CICCardApp::ExitInstance()
{
return COleControlModule::ExitInstance();
}
//////////////////////////////////////////////////////////////////////
ActiveX文档

IE的ActiveX控件的开发(一)(2006-09-06 19:00:50)分类:工作需要,突然要开发一个IE的ActiveX控件。
由于以前没有接触过这方面的东西,因此走了一些弯路。
网上搜了一大堆资料,又多又杂,东一块西一块的,关于第一次接触者和快速开发很不利,在此特意整理出来,以备忘,作参考。
ActiveX简介ActiveX是一个可能念,也微软进军网络应用的一个王牌武器之一。
我自己开发的ActiveX插件其实只是一个OCX控件,嵌入html代码中去应用。
因此这篇文章更多的涉及了OCX的东西。
OCX文件:OCX文件的全称是Object Linking and Embedding (OLE) Control Extension,中文名字叫做“嵌入式对象控件”,它的作用其实和适才谈到的DLL文件专门相像,其实所谓的OLE咱们平常已经超级熟悉了,简单地说就像在Word中能够利用Excel数据,写字板中能够嵌入图片文件等等这些功能。
打个例如的话,剪贴板就像是个简单的数据共享,而OLE那么是一种“对象共享”。
一、OCX组件的来历是如何的?一样的开发工具都会提供一些标准控件,但不管标准控件何等壮大、何等完善,都不能完全知足用户的需要。
因此易语言就提供一个接口,许诺用户编写自己的控件插入到易语言中利用。
用户编写自己的控件在利用方式上同标准控件是相同。
依照易语言的接口标准编写的控件确实是OCX。
由于利用OCX能够节省开发软件的时刻,因此此刻几乎所有开发工具都许诺用户利用OCX来增强其功能。
后来随着Internet的流行,微软又让网页中能够嵌入OCX,并称其为 ActiveX 控件。
目前能够编写OCX的工具包括VB、VC、Delphi。
易语言也即将支持OCX。
二、OLE和OCX的关系是什么?OLE和OCX通称对象链接与嵌入。
易语言已通过超级链接框等实现很多对象的链接功能,对象的嵌入易语言也即将支持。
OLE 与OCX 的应用主若是源于将多个应用信息源组合到一路的目标,OCX即将在易语言中取得普遍的应用,因为它能更好的与易语言的应用程序相结合,从而实现易语言不行实现或是很难实现的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步步学ACTIVEX网页控件开发转载自IT168 [ / ]第1页:创建ActiveX控件本文将首先介绍如何使用Visual Studio开发一个简单的ActiveX控件,然后介绍ActiveX控件开发相关的基础知识,比如方法,属性和事件等,最后介绍如何利用这些知识,实现ActiveX控件和网页页面之间的通信。
MyActiveX控件的效果图简介ActiveX是由Microsoft在90年代中期提出的一项技术。
利用ActiveX技术,开发者可以创建像Java小程序applet一样的小型应用程序。
这些应用程序可以被下载然后在Microsoft的浏览器中运行。
这篇文章是为那些想学习如何开发他们的第一个ActiveX控件的Visual C++开发者准备的。
当我自己尝试学习这些技术的时候,我发现很多针对ActiveX技术的资料都已经不再适用了,都已经过时了,或者丢失了很多关键性的信息,这些都使得我在为我的项目创建一个ActiveX控件的时候,变得困难重重。
这篇文章将帮助你实现ActiveX网页控件开发的快速入门。
本文将首先介绍如何使用 Visual Studio开发一个简单的ActiveX控件,然后介绍ActiveX控件开发相关的基础知识,比如方法,属性和事件等,最后介绍如何利用这些知识,实现ActiveX控件和网页页面之间的通信。
另外,你也将学习到如何在默认的Internet Explorer安全设置下取消掉控件加载过程中的警告或者错误提示,使你的控件成为一个“安全”的ActiveX控件。
在本文中,我们将创建一个实际的ActiveX控件。
在控件加载的过程中,它将显示一个动态的进度条,告诉用户控件正在加载并处理信息。
同时,这个控件也将展示如何在ActiveX控件和Web页面之间传递信息。
本文将引导你一步步地利用Microsoft Visual Studio 2005完成ActiveX控件的开发工作。
创建ActiveX控件要创建一个ActiveX控件,首先启动Visual Studio 2005,执行下面这些步骤:1.选择“文件”菜单,然后选择“新建”->“项目”。
2.在“新建项目”对话框中,如下图1所示,选择“Visual C++”分类下的“MFC”。
然后选择“MFC ActiveX控件”作为项目模板。
第2页:添加对动态GIF动画的支持3.将新项目命名为“MyActiveX”,然后选择项目的保存目录,最后点击“确定”按钮,关闭“新项目”对话框,进入“MFC ActiveX控件”向导。
图1 新项目对话框4.在“MFC ActiveX控件”向导中,如下图2所示,选择左侧的“控件设置”,进入控件参数设置页面。
5.在“Create control based on”下拉列表中选择“STATIC”。
这表示我们使用的是一个静态控件,因为我们仅仅是显示输出而不接收输入。
6.在下面的“Additional features”的所有选项中,我们确认选中“Activates when visible”和“Flicker-free activation”这两个选项,同时确认“Has an About box dialog”选项没有被选中。
图2 MFC ActiveX 控件向导对话框7.点击“Finish”按钮关闭整个“MFC ActiveX控件向导”对话框,然后向导就会为我们创建整个项目的源代码。
默认情况下,向导创建的项目是使用共享MFC DLL的,这里我们需要改变这一设置。
因为如果目标机器上没有安装MFC DLL,那么ActiveX控件就不会运行。
我们常常看到一些网页上的ActiveX控件被显示为红色的叉叉,很多都是这个原因造成的。
为了解决这个问题,我们使用静态的MFC DLL。
从Visual Studio的菜单中选择“项目”->“属性”,然后切换到“配置属性”->“普通”,在配置页面中的“Use of MFC ”下拉列表中,将“use MFC in a shared DLL”切换成“Use MFC in a Static Library”就可以了。
8.向导创建了如下三个类:CMyActiveXApp –这是从COleControlModule派生的ActiveX控件应用程序类。
通过这个类,我们可以得到一个OLE控件对象,这个对象包含了对控件进行初始化(InitInstance)和对控件进行清理(ExitInstance)的成员函数。
CMyActiveXCtrl –这个类是从COleControl派生的。
我们将在这个类中实现控件的主要功能。
CMyActiveXPropPage –这个类从COlePropertyPage派生的。
它被用来管理控件的属性对话框。
MFC ActiveX控件向导已经为我们创建了一个默认的属性对话框,我们只需要在其基础上进行修改就可以了。
添加对动态GIF动画的支持为了实现使用ActiveX控件显示动态的进度条GIF动画,我们将使用Oleg Bykov在CodeProject的一篇文章中创建的类CPictureEx。
具体的文章地址,请查阅本文最后的参考资料。
首先,我们需要将源代码文件pictureex.cpp和pictureex.h添加到我们的项目中。
选择Visual Studio 2005 IDE中的“解决方案浏览器”,在源代码窗口中点击“Header Files or Source Files”,然后点击右键,在弹出的上下文菜单中选择“Add”->“Existing Item”,在文件选择对话框中,选中我们需要的源代码文件添加到项目中。
默认情况下,Visual Studio 2005本身是不支持GIF资源的。
如果你尝试着添加一个GIF资源,它将弹出一个错误窗口报告说这个文件不是一个合法的GIF 文件。
为了添加一个动态的 GIF动画资源,我们需要做一些额外的工作。
请按照下面的步骤添加GIF资源:1.复制GIF文件ProcessingProgressBar.gif到你的项目目录,然后将其扩展名修改为“gaf”。
在资源视图中,右键单击 MyActiveX.rc,然后选择“Add Resource”。
在弹出的添加资源对话框中,点击“Import”按钮,然后选择ProcessingProgressBar.gaf。
在“自定义资源类型”对话框中,填入“GIF”作为资源类型。
这样我们就可以将GIF图像文件导入到项目中作为资源了。
你可以在资源视图的“GIF”目录下中找到我们刚刚导入的GIF图像文件。
选中这个GIF图像资源,然后将它的ID由默认的IDR_GIF1修改为IDR_PROGRESSBAR。
2.在上一步中,我们使用“gaf”作为文件扩展名绕过了Visual Studio对GIF 资源文件的检查。
现在,我们需要做一些事情将这个“错误”修正过来,使得GIF 图像文件能够正常工作。
首先,在Visual Studio 2005中保存MyActiveX.rc。
然后打开项目目录,用记事本直接打开资源文件MyActiveX.rc,然后找到 IDR_PROGRESSBAR的定义行。
这里我们需要将文件名修改为“ProcessingProgressBar.gif”。
同样的,将项目目录下的 GIF资源文件的文件名修改为“ProcessingProgressBar.gif”。
第3页:添加代码实现进度条的显示接着,保存记事本中的MyActiveX.rc。
这时,Visual Studio将报告说MyActiveX.rc被外部程序修改,点击“Yes”重载这个资源文件。
最后,选中“解决方案浏览器”中的“ProcessingProgressBar.gaf”,在它的属性对话框中,将“Relative Path”修改为“ProcessingProgressBar.gif”添加对话框显示进度条现在,我们将添加一个对话框用以显示进度条:1.在资源视图中,右键点击对话框节点,在上下文菜单中选择“Insert Dialog”创建一个新的默认对话框。
2.删除对话框模板上我们不需要的“OK”和“Cancel”按钮,然后将对话框的尺寸调整为230 x 40。
3.然后,我们对对话框的属性做一些必要的修改,使它更适合于用来显示进度条:Border – None, Style – Child, System Menu – False, Visible – True。
4.将对话框的ID修改为IDD_MAINDIALOG。
5.在对话框上添加一个图像控件(Picture Control)。
将图像控件的尺寸调整为200 x 20,然后将其ID修改为IDC_PROGRESSBAR。
同时,将其颜色属性修改为白色(White)。
6.最后,我们需要为对话框资源创建一个新的类。
在对话框资源上右键单击,在弹出的菜单中选择“Add Class”,在接着出现的“MFC类向导”对话框中,我们将新的类命名为CMainDialog,基类设置为CDialog,点击“Finish”完成类的创建。
图3 创建新的对话框类CMainDialog现在,我们来为这个新创建的对话框类添加成员变量。
成员变量m_MainDialog 对应于类CMainDialog,而m_ProgressBar对应于我们刚刚添加的进度条显示控件。
1.为类CMyActiveXCtrl添加成员变量m_MainDialog。
选择类视图,在类CMyActiveXCtrl的节点上点击右键,在上下文菜单中选择“Add”->“ Add Variable”,然后输入CMainDialog作为变量类型,输入m_MainDialog作为变量名。
2.跟上面的步骤一样,我们为类CMainDialog添加成员变量m_ProgressBar。
输入CPictureEx作为变量类型,m_ProgressBar作为变量名。
同时,选中“Control variable”复选框,使其成为一个控件变量。
在“Control ID”下拉列表中,确认控件的ID为“IDC_PROGRESSBAR”。
具体设置如下图4所示:图4 添加成员变量m_ProgressBar添加代码实现进度条的显示现在,我们将添加代码实现主对话框和进度条控件的显示。
1.在类视图中,选中类CMyActiveXCtrl。
然后在其属性页中选中消息(Messages)图标,在消息列表中,选择“WM_CREATE”消息,然后选择“<Add> OnCreate”为WM_CREATE消息创建一个消息响应函数OnCreate。
这样,向导就会为我们在类CMyActiveXCtrl中创建一个消息响应函数OnCreate。
2.编辑MyActiveXCtrl.cpp文件,将下列代码添加到我们刚刚创建的OnCreate函数中。