MFC中ActiveX控件的使用

本文介绍了在MFC中使用ActiveX控件时遇到的问题及解决方法,包括通过类向导与手动添加变量的区别,以及如何通过COM接口与控件交互。在手动添加变量时,实际上是指向COM对象的接口,而类向导添加的是控件对象。ActiveX控件的使用涉及到IUnknown接口和QueryInterface方法,以实现与控件接口的关联。
摘要由CSDN通过智能技术生成

    Windows系的开发做的很少,也晕乎晕乎的。

    最近学习了下Arcgis的开发,话说C++开发相关的资料还真少。好不容易从网上找了篇资料,算是入了门(或者还在门外头,但是找到门了)。感谢这位同仁:

    http://blog.csdn.net/yiersl/article/details/16856479

    在MFC中添加上MapControl的控件之后。手动添加一个IMapControl2Ptr类型的变量,然后用手动添加的变量再去手动的与控件关联,才能进一步调用或者设置控件的方法和属性。我上一次使用MFC是什么时候来着?貌似很久远了。不过我依稀记得,为控件添加变量这种事情在MFC当中点点鼠标就能完成了啊,于是我就试了一下。过程虽然很艰辛,但最后终究是实现了。在这个过程中,发现了几个不理解认为很奇怪的地方:

    ① 通过类向导添加上的变量,在使用其方法时,跟手动添加的变量(指针类型)方法的原型不一样。

    ② 添加变量的过程中,还为控件创建了相应的源文件和头文件。

    上网搜了各种关键词,资料少之又少,但感觉还是有点明白了,不知道理解的对不对,但至少临时能解释的通,暂且先记下来。

    ① 不一样的原因在于,手动添加的变量跟类向导创建的变量本来就不是一个类型。手动添加的变量是Com(控件)中的一个接口(interface)的指针,而类向导添加的是控件对应的COM对象的变量。稍微了解下原理,控件就是一个标准的COM对象,而该对象包含了多个接口。手动添加时变量直接指向了对象中的某个接口(此处的接口是COM中的概念,其中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值