Windows系的开发做的很少,也晕乎晕乎的。
最近学习了下Arcgis的开发,话说C++开发相关的资料还真少。好不容易从网上找了篇资料,算是入了门(或者还在门外头,但是找到门了)。感谢这位同仁:
http://blog.csdn.net/yiersl/article/details/16856479
在MFC中添加上MapControl的控件之后。手动添加一个IMapControl2Ptr类型的变量,然后用手动添加的变量再去手动的与控件关联,才能进一步调用或者设置控件的方法和属性。我上一次使用MFC是什么时候来着?貌似很久远了。不过我依稀记得,为控件添加变量这种事情在MFC当中点点鼠标就能完成了啊,于是我就试了一下。过程虽然很艰辛,但最后终究是实现了。在这个过程中,发现了几个不理解认为很奇怪的地方:
① 通过类向导添加上的变量,在使用其方法时,跟手动添加的变量(指针类型)方法的原型不一样。
② 添加变量的过程中,还为控件创建了相应的源文件和头文件。
上网搜了各种关键词,资料少之又少,但感觉还是有点明白了,不知道理解的对不对,但至少临时能解释的通,暂且先记下来。
① 不一样的原因在于,手动添加的变量跟类向导创建的变量本来就不是一个类型。手动添加的变量是Com(控件)中的一个接口(interface)的指针,而类向导添加的是控件对应的COM对象的变量。稍微了解下原理,控件就是一个标准的COM对象,而该对象包含了多个接口。手动添加时变量直接指向了对象中的某个接口(此处的接口是COM中的概念,其中