怎样用VC在容器端取得ActiveX控件的属性

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
怎样获得ActiveX控件的各项属性值

我们需要在容器中获得ActiveX控件的各项属性值,这需要利用一些COM库提供的接口,这篇文章主要是对这一过程作一介绍,从而使大家对这些接口有所了解并学会使用.
首先我们需要在容器方的COleClientItem类中添加一个函数,如InitControlInfo().
需要注意的事,这个函数要在创建了控件(即CoCreateInstance())之后,在激活控件(即QuickActive()或SetClientSite())之前调用.
在这个函数中,我们将使用以下几个主要的接口:ITypeInfoPtr, IProvideClassInfoPtr请注意:这两个接口是智能指针,所以你不必去管它们的生存周期.
首先,我们要使用m_lpObject成员变量,这个变量是COleClientItem内部实现的.它其实是一个指向IOleObject的指针,在创建控件的时候你需要给它赋值以便后来的使用. 现在我们可以直接使用它.
(一): 
  m_lpObject->QueryInterface( IID_IProvideClassInfo,(void**)&pPCI );//  由此我们获得了IProvideClassInfoPtr pPCI
  pPCI->GetClassInfo( &pClassInfo );//  获得ITypeInfoPtr pClassInfo
  pClassInfo->GetTypeAttr( &pTypeAttr ) // TYPEATTR* pTypeAttr TYPEATTR使用来描述类型属性的一个结构,它包含很多值,具体可参阅MSDN.
 
  #define IMPLTYPE_MASK (IMPLTYPEFLAG_FDEFAULT¦IMPLTYPEFLAG_FSOURCE¦/IMPLTYPEFLAG_FRESTRICTED)
  #define IMPLTYPE_DEFAULTSOURCE (IMPLTYPEFLAG_FDEFAULT¦IMPLTYPEFLA
白乔原创:VC控件     1 使用Windows标准控件1.1 常见控件列表Windows标准控件即普通控件,撰写此文时,笔者每天面对的Word就带了一脸的控件,当然你肯定也熟悉:字体选择下拉框、工具栏、滚动条、状态栏,如此等等。常见的Windows标准控件VC里就有:图2 控件集窗口通常这个控件集窗口在你的对话框设计界面的附近总能找到,如果找不到,在VC工具栏的任何空白处点击 阅读详情

相关推荐

VC++编写ActiveX控件

前言:ocx是ocx控件的扩展名,OCX 是对象类别扩充组件。如果你用过Visual Basic或者Delphi一类的可视化编程工具,那么对控件这个概念一定不会陌生,就是那些工具条上的小按钮,如EditBox,Grid,ImageBox,Timer等等。每个控件都有自己的事件、方法和属性。使用了控件的编程非常容易。首先,在程序的设计阶段可以设置一些属性,如大小,位置,标题(caption)等等;在

waxgourd0的专栏 9568

ActiveX(五)

5.属性 属性ActiveX 控件中向所有容器公开的数据成员。与事件和方法类似,也分为常用属性和自定义属性。 常用属性 常用属性已由 COleControl 类实现。COleControl 类包含支持控件的通用属性的预定义成员函数。某些通用属性包括控件的标题以及前景色和背景色。 添加常用属性的操作是在类视图中打开库节点,在本例中就是activexdemo1Lib节点。选中第二个节点

TrustNature 586

VC检测OCX(ActiveX)控件是否注册并注册

当程序中调用ActiveX控件时候,需要先检测系统是否已注册该控件,如果没有注册则注册。 流程: 1.检测系统清册表是否安装该控件BOOL OnIsRegistOCX( LPCTSTR lpCLSID) 2.如果没有注册则复制OCX文件到系统目录,如system32目录并注册 OnRegisterReg(LPCTSTR pszDllName) 3.用户需要调用的接口函数LRESULT CheckRegistOCX(LPCTSTR lpOCXname, LPCTSTR lpCLSID) 4.调用地方:BOOL C***App::InitInstance()中

Reading Type Libraries with C++(Turn)

Reading Type Libraries with C++ <script type="text/javascript"> <!-- google_ad_client = "pub-8899454244071340"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "...

zhangziyueup 161

VC开发ActiveX控件指引

一. 引言    本文适合于想使用VC++编写自己的控件却又无从下手的开发人员,将会帮你一步一步的开发一个显示正余弦波形的控件。这里假设你对VC++6.0和ActiveX的基础知识有一定的了解。下面是该控件完成后测试时的截图: 二.  正文    1。使用AppWizard建立一个ActiveX控件工程。         请按如下步骤生成该控件:1.在文件菜单中选择新建

naiveC的专栏 3568

在VS2010中开发ActiveX控件设置测试容器的方式

在VS2010中开发ActiveX控件设置测试容器的方式 借鉴文章http://blog.csdn.net/waxgourd0/article/details/7374669         在VS2010中开发MFC ActiveX控件,开发完后,通常使用VS自带的容器ActiveX Control Test Container来运行ActiveX控件。此容器在VS安装后的文件中是找

7517

VC随笔——ActiveX控件

<br /> VC   2006-10-10 19:39 <br />ActiveX、OLE和COM:<br />COM(Component Object Model)即组件对象模型是用来解决Windows程序模块之间相互通信的标准方法,是Windows统一的、可扩充的、面向对象的通信协议。COM是一种协议,建立了一个软件模块同另一个软件模块之间的连接,然后将其描述出来。当这种连接建立起来后,两个软件模块之间就可以通过一个称为“接口”的机制来进行通信。<br />OLE(Object Linking & E

weizhijiang的专栏 1077

VC使用ActiveX控件常见问题

VC使用ActiveX控件常见问题一方面,它表示将你联系到Microsoft、Internet和业界的新技术的小型快速的可重用组件。它与开发语言无关,任何支持 ActiveX控件的软件开发平台(如VB、VC++、Access、VFP、Delphi、PowerBuilder等)上,都可以使用ActiveX控件,程序员可以像使用Windows标准控件一样使用不同厂商开发的ActiveX控件。这样就实现了

计算机小白 1554

MFC在VS2010中开发ActiveX控件,设置测试容器方案

在VS2010中开发MFC ActiveX控件,开发完后,通常使用VS自带的容器ActiveX Control Test Container来运行ActiveX控件。此容器在VS安装后的文件中是找不到的,需要自己手动获取。如下所述: (1)按照你的VS所安装的路径,找到VC2010Samples.zip这个压缩文件,其在Samples下的名为2052文件夹中,如在我的电脑上,其所在路径为:C:\

sky_lily_1985的专栏 2353

vc开发ActiveX控件

容器和服务器程序  容器应用程序时可以嵌入或链接对象的应用程序。Word就是容器应用程序。  服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序。Excel就是服务器应用程序。  ActiveX控件不能独立运行,它必须被嵌入容器应用程序中,和容器应用程序一起运行。    Dispatch maps调度映射,主要是MFC提供让外部应用程序可以访问控件属性和方法 Event m

u011760757的专栏 795

[activeX]VC2005开发MFC ActiveX ocx控件全过程[转]

ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件。这里控件容器就是浏览器,用户不需要通过浏览器调用控件属性或方法。因此,开发面向Web的ActiveX控件比开发桌面的控件还要简单些,所复杂

柠檬加冰 4041

vc6.0 调用ocx控件

1.       ActiveX控件简介          ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。在创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的在ActiveX网络(现在的网络主要包括Windows和Mac)中任意运行的程序。这个

Road2010的专栏 1万+

MFC 控件容器

背景知识 VC向导里面有一个MFC ActiveX项,我们可以使用它来创建ActiveX控件ActiveX技术是OLE技术的延伸,微软早期推出OLE技术不是非常成功,于是修改了名字以抹去人们对OLE的阴影。 ActiveX技术在现在应用非常广泛,它以COM思想为基础,以MFC技术实现,使得开发人员可以快速创建组件功能模块应用于Windows平台任何语言。我们在使用ActiveX控件的时候(本文

坚持是世界上每个有所建树的人共有的品质! 3794

VC中进行ActiveX控件的开发

开发环境:VS2010 开发步骤: 一、ActiveX控件项目的新建 1、 文件->新建->项目,选择MFC ActiveX控件,项目名称叫做MCDocx。     2、 新建完成后,默认生成如图所示的类视图结构: 其中CMCDocxApp类用于控制整个控件的程序执行流程,默认生成InitInstance()和ExitInstance ()两个成员函数,用于初始化控件

Hyman的博客 3890

VS2010开发ActiveX控件 设置测试容器

转:http://blog.csdn.net/waxgourd0/article/details/7374669  在VS2010中开发MFC ActiveX控件,开发完后,通常使用VS自带的容器ActiveX Control Test Container来运行ActiveX控件。此容器在VS安装后的文件中是找不到的,需要自己手动获取。如下所述: (1)按照你的VS所安装的路径,找

ouyang503的专栏 702

vs2015添加ActiveX控件测试容器TstCon.exe

VS2010中默认没有ActiveX控件测试容器TSTCON.exe,但是工程文件放在了vs2010的安装目录里。我的电脑上在C:\Program Files (x86)\Microsoft Visual Studio 10.0\Samples\2052这个目录下,如下图所示: 将VC2010Samples.zip解压到当前文件夹 出现了一个C++目录,我们一路向里进入如下目录 C:\Prog...

Keras深度学习 1万+

MFC 之ActiveX控件学习

本文将介绍ActiveX控件的应用与工作原理,读者可以把ActiveX控件看成一个极小服务器的应用程序,它不能独立运行,必须要嵌入到容器程序中与容器一起运行,就像电脑主机中的显卡,它自己在电脑硬件系统中是不能发挥作用的必须要和嵌入到主板中,与主板一起工作。 ActiveX控件与普通的Windows控件有共同之处也存在差异。首先ActiveX控件有自己的属性和方法。对Active...

abb95049的博客 323
上一篇: 怎样为任何控件和区域添加提示信息:用自己封装的CTip类
下一篇: 1、计算机科学基础入门
flower
博客等级 码龄26年 513粉丝 1620原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值