阅读:2083回复:6
[求助]不用ToolbarControl控件怎样实现同样的功能?
<P>各位兄弟,我用的是PB8+ArcObject开发GIS, 在PB里不能做DLL的,请问怎么实现自定义工具呢?</P>
<P>我的意思是完全不用ToolbarControl控件,用语言本身(VB,JAVA,PB)的工具栏和菜单怎么做?</P> [此贴子已经被作者于2005-4-13 11:29:54编辑过]
|
|
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编辑过]
|
|
2楼#
发布于:2005-04-12 15:58
楼上的兄弟,是用IMapControl3的CurrentTool 属性吗?要传给它一个ITool类型的对像哟,那建自定义工具怎么办? 还是要实现ITool接口呀?PB不能实现接口的,不知你用过MapX没有, 最好能像MapX那样就爽了,
|
|
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> |
|
4楼#
发布于:2005-04-13 11:37
<P>建自定义工具怎么办?还不是要实现Icommand和Itool两个接口建一个DLL?我用的PB语言是不能实现COM接口制做DLL的哟.只能新定义自己的接口.</P>
<P>其实我只要有办法控制鼠标在地图上的光标和行为就好了,这样所有的工具功能就可以自己实现.怎么做呢?.</P> [此贴子已经被作者于2005-4-13 11:44:03编辑过]
|
|
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编辑过]
|
|
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编辑过]
|
|