惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - .3S Swimmer

用类的方式实现资源国际化 CVS使用汇编 CVS使用中遇到的问题及解决办法[随记] - .3S Swimmer - 博客园 ArcIMS开发(一)——ArcIMS API 简介 使用ArcIMS9.2+Java ADF建立基本的WebGIS站点的尝试 从已有的文件中恢复ClearCase LT Server 申请了一个gmail邮箱,体验ing C#中创建和使用资源动态链接库 C#中unhandled异常处理的问题 解决SQL Server 连接时的一些基本问题后的若干初浅心得 使用XML的DOM和XPath来创建多项选择题的在线测试 二维数据表的显示 农用地定级系统工作计划 二维数据表的XML描述 ALEIS,啊,累死 我不认为我喜欢编程 用XSD判断XML文件中元素和属性 ClearCase LT的使用心得(二) ALEIS定级部分工作分配
在.net 2005 环境中开发ArcMap工具条
.3S Swimmer · 2008-12-28 · via 博客园 - .3S Swimmer

引子

最近因为要做一些比较复杂的专业分析,所以想尝试做做类似Extension的东西,但不想搞得太复杂,所以先用VBA写了几个Button对应的模块,然后再定制一个工具条,将Button放置在其中。总感觉不太专业,因此就想用Vb.net试试看,发觉并不难,记下过程供日后参考。

一、准备工作

1、用1,2天的时间查阅了相关资料,主要看比较几种开发语言的,便于选择。从个人情况和ArcGIS版本考虑,相中VB.net in VS.net 2005。

2、ArcGIS 9.2。记得安装ArcGIS Desktop Development Kit for .Net(不知道写对没,:))。

3、熟悉了一下VS.net 2005 的开发环境。(大概有3、4年没有用过.Net了,还好,就像大姑娘化了不同的装,人还是那个人,;))

4、其实已经用VBA做的差不多了,只是VBA不太好用而已,就当升级开发,为今后的工作打铺垫。

二、生成工具条类

  首先,建立一个工程,取名为RCMLib。过程参照http://edndoc.esri.com/arcobjects/9.2/NET/01c01659-cdf8-4579-9c87-2b965e872d84.htm中建立工程的部分,后面添加Command的部分不要。

   第二步,添加一个类,取名RCMToolbar。过程是打开添加类窗口,在右边的窗口中选择“ArcGIS Class”,命名“RCMToolbar.vb",点击"添加",弹出”Add ArcGIS Class Wizard"的对话框,在右边的第一个下拉框中选"All",第二个下拉框中选"Application Framework",在下面的列表框中找到“Toolbar”,OK,点击“Next”。在接下来的“Categories"中选择ArcMap Command”(也可以根据需要选其它的),点击“Next”。接下来,点击“Finish”。

  第三步,基本修改1, 添加工具条的标题和名称。打开新类代码。找到属性Caption的函数,添加语句“ return "RCM Toolbar"";找到属性Name的函数,添加语句”Return "RCMToolbar"“。Caption是显示在工具条窗口上和ArcMap的Customize对话框中的字符串,Name是类的唯一名称。生成.dll后,在ArcMap中就可以添加该工具条了。

 三、添加按钮

  第一步,添加一个类,命名为Button1。过程基本和添加RCMToolbar类差不多,不同是选择“Application Framework”的“Command”。

  第二步,向工程添加一个bmp文件(button1.bmp),作为Button1上显示的图像。接下来修改几个地方。首先,为Button1添加两个私有成员:

Code

  然后 ,在New()函数中,读入button1.bmp:  

Code

  修改Bitmap属性:

Code

    第三步,将Button1连接到RCMToolbar。修改RCMToolbar中的GetItemInfo和ItemCount:

Code

    编译工程。启动ArcMAP后,在Customize...中选择新建的工具条,即可。