原文地址:http://blog.csdn.net/csu_yijie/article/details/6717275
这个问题遇到后搜了很多网页也没发现解决方案,最后咨询了一位计算机牛人,得到解决。
问题环境: windows xp系统 , AE 9.3 , VS2005
问题描述: 父子窗体同时都有TOC控件时,子窗体的TOC控件不正常,具体为:地图前的图标以及图层前的checkbox不显示。
解决思路: 此问题是由Windows控件与ESRI控件冲突导致,需要一个manifest文件,这是一个xml描述型文件。具体如下:
1、 打开一个记事本编辑如下容。然后重命名为 :主程序文件名.exe.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
language="*"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
/>
</dependentAssembly>
</dependency>
</assembly>
2、在VS里点击文件—— 打开——文件,,找到你的解决方案下debug里的程序(就是 主程序名.exe 执行文件)(例如:本人的AG-Main.exe),打开后出现一个树状图。
3、右键点击 主程序名.exe ——添加资源——导入——选择你刚才新建的manifest文件——资源类型填写“ RT_MANIFEST”——,在树目录RT_MANIFEST 下,可以看到新增的名为“101”的资源文件,右键属性,修改其id,id由“101”改为“1”——全部保存。
4、搞定后,双击你的主程序.exe运行,问题解决。
但是在调试模式下显示还是不正常的,因此就在发布的exe文件中嵌入这个manifest吧。