wei_jian
路人甲
路人甲
  • 注册日期2004-08-12
  • 发帖数18
  • QQ
  • 铜币175枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2083回复:6

[求助]不用ToolbarControl控件怎样实现同样的功能?

楼主#
更多 发布于:2005-04-12 11:36
<P>各位兄弟,我用的是PB8+ArcObject开发GIS, 在PB里不能做DLL的,请问怎么实现自定义工具呢?</P>
<P>我的意思是完全不用ToolbarControl控件,用语言本身(VB,JAVA,PB)的工具栏和菜单怎么做?</P>
[此贴子已经被作者于2005-4-13 11:29:54编辑过]
喜欢0 评分0
gsl1982
路人甲
路人甲
  • 注册日期2004-05-08
  • 发帖数135
  • QQ
  • 铜币543枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-04-12 14:30
<PRE><CODE>可以啊,定义IMapControl3,IPageLayoutControl2接口类型的变量,得到Mapcontrol和PagelayoutControl控件实体.</CODE></PRE><PRE><CODE>就可以对这两个控件进行操作</CODE></PRE><PRE><CODE>Dim pMapCtrl as IMapControl3</CODE></PRE><PRE><CODE></CODE><CODE>Dim pPageLayoutControl As IPageLayoutControl2</CODE></PRE><PRE><CODE>Set pMapCtrl = MapControl1.Object</CODE></PRE><PRE><CODE>Set pPageLayoutControl = PageLayoutControl1.Object</CODE></PRE>
[此贴子已经被作者于2005-4-12 14:33:08编辑过]
举报 回复(0) 喜欢(0)     评分
wei_jian
路人甲
路人甲
  • 注册日期2004-08-12
  • 发帖数18
  • QQ
  • 铜币175枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-04-12 15:58
楼上的兄弟,是用IMapControl3的CurrentTool 属性吗?要传给它一个ITool类型的对像哟,那建自定义工具怎么办? 还是要实现ITool接口呀?PB不能实现接口的,不知你用过MapX没有, 最好能像MapX那样就爽了,
举报 回复(0) 喜欢(0)     评分
gsl1982
路人甲
路人甲
  • 注册日期2004-05-08
  • 发帖数135
  • QQ
  • 铜币543枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-04-13 11:26
<P>C#代码,在自己的Toolbar中使用ArcEngine自带的命令</P><P>ESRI.ArcGIS.SystemUI.ICommand pCommand;
pCommand = new ESRI.ArcGIS.ControlCommands.ControlsMapZoomInToolClass ();
pCommand.OnCreate (axMapControl1.Object );
axMapControl1.CurrentTool = pCommand as ESRI.ArcGIS.SystemUI.ITool ;</P>
举报 回复(0) 喜欢(0)     评分
wei_jian
路人甲
路人甲
  • 注册日期2004-08-12
  • 发帖数18
  • QQ
  • 铜币175枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-04-13 11:37
<P>建自定义工具怎么办?还不是要实现Icommand和Itool两个接口建一个DLL?我用的PB语言是不能实现COM接口制做DLL的哟.只能新定义自己的接口.</P>
<P>其实我只要有办法控制鼠标在地图上的光标和行为就好了,这样所有的工具功能就可以自己实现.怎么做呢?.</P>
[此贴子已经被作者于2005-4-13 11:44:03编辑过]
举报 回复(0) 喜欢(0)     评分
gsl1982
路人甲
路人甲
  • 注册日期2004-05-08
  • 发帖数135
  • QQ
  • 铜币543枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2005-04-13 12:00
<P>在创建工具时new一个自己定义的工具类就行了</P>
<P>ESRI.ArcGIS.SystemUI.ICommand pCommand;
pCommand = new MyCommand();
pCommand.OnCreate (axMapControl1.Object );//传入参数hook,非必要
</P>
[此贴子已经被作者于2005-4-13 12:01:14编辑过]
举报 回复(0) 喜欢(0)     评分
wei_jian
路人甲
路人甲
  • 注册日期2004-08-12
  • 发帖数18
  • QQ
  • 铜币175枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2005-04-13 15:30
<P><FONT face=宋体>gs11982兄弟:</FONT></P>
<P><FONT face=宋体>    你那个MyCommand类是不是要实现Icommand和ITool两个接口中的方法? 是否还要做成动态链接库(dll)?  我用的PB语言不支持实现COM接口的,就像这样:Implement Icommand的语法是没有的哟.</FONT></P>
<P><FONT face=宋体>能不能给个QQ联系一下,我的QQ是:274759629,谢谢了!</FONT></P>
[此贴子已经被作者于2005-4-13 15:34:26编辑过]
举报 回复(0) 喜欢(0)     评分
游客

返回顶部