dan800913
路人甲
路人甲
  • 注册日期2005-01-10
  • 发帖数102
  • QQ
  • 铜币617枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:4548回复:17

toccontrol中的右键菜单如何实现?

楼主#
更多 发布于:2005-09-07 10:50
<P>现在在用ae+vbnet开发一个三维globe界面,需要是线toccontrol的右键菜单功能,不知道该看那些资料或者依照什么思路,希望大家指点!<BR>谢谢!</P>
喜欢0 评分0
kisssy
卧底
卧底
  • 注册日期2004-04-18
  • 发帖数235
  • QQ
  • 铜币614枚
  • 威望2点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-09-07 11:26
<P>思路是有的,但还需你自己动脑筋:</P>
<P>1、单击事件中,toccontrol.HitTest方法来判断点击的事物。</P>
<P>2、给个例子吧</P>
<P>下面是我实现ArcMap中双击toccontrol中Symbol调出SymbolSelector的例子:</P>
<P>Private Sub tocCtrl_OnDoubleClick(ByVal Button As Long, ByVal shift As Long, ByVal x As Long, ByVal y As Long)<br>  Dim pMap As IMap<br>  Dim pLayer As ILayer<br>  Dim pOther As IUnknown<br>  Dim pItem As esriTOCControlItem<br>  Dim pIndex As Variant</P>
<P>  'Determine what kind of item has been clicked on<br>  tocCtrl.HitTest x, y, pItem, pMap, pLayer, pOther, pIndex<br>  'Only layer items can have their labels edited<br>  If pItem = esriTOCControlItemLegendClass Then<br>    Dim pLC As ILegendClass<br>    Dim pLG As ILegendGroup<br>    If TypeOf pOther Is ILegendGroup Then<br>       Set pLG = pOther<br>    End If<br>    Set pLC = pLG.Class(CLng(pIndex))<br>    Dim pSym As ISymbol<br>    Set pSym = pLC.Symbol<br>    Dim pSS As ISymbolSelector<br>    Dim bOK As Boolean<br>    Set pSS = New SymbolSelector<br>    pSS.AddSymbol pSym<br>    bOK = pSS.SelectSymbol(0)<br>    If bOK = True Then<br>        Set pLC.Symbol = pSS.GetSymbolAt(0)<br>    End If<br>    tocCtrl.Update<br>    mapCtrl.Refresh<br>  End If<br>End Sub</P>
<P>我想右键菜单,不是太难了吧</P>
[此贴子已经被作者于2005-9-7 11:27:45编辑过]
个人专栏: https://zhuanlan.zhihu.com/c_165676639
举报 回复(0) 喜欢(0)     评分
slw
slw
路人甲
路人甲
  • 注册日期2003-09-12
  • 发帖数1
  • QQ
  • 铜币138枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-09-07 15:31
<P><img src="images/post/smile/dvbbs/em02.gif" /></P>
<P>但不知在VB.NET中,esriTOCControlItem属于哪个命名空间啊?说无此数据类型。</P>
举报 回复(0) 喜欢(0)     评分
dan800913
路人甲
路人甲
  • 注册日期2005-01-10
  • 发帖数102
  • QQ
  • 铜币617枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-09-07 17:11
谢谢kisssy!
举报 回复(0) 喜欢(0)     评分
sirc_lizheng
伴读书童
伴读书童
  • 注册日期2004-07-09
  • 发帖数148
  • QQ
  • 铜币495枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-09-07 18:13
你知道在AE+VB中怎样实现吗?
举报 回复(0) 喜欢(0)     评分
dan800913
路人甲
路人甲
  • 注册日期2005-01-10
  • 发帖数102
  • QQ
  • 铜币617枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2005-09-07 19:52
其实现在我还没有搞明白!等彻底搞清楚了,告诉大家!不过也请高手出手啊!
举报 回复(0) 喜欢(0)     评分
amos5
路人甲
路人甲
  • 注册日期2005-06-15
  • 发帖数10
  • QQ
  • 铜币127枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2005-09-08 08:54
可以用vb的自己的上下文菜单,先建立菜单,再将菜单popup
举报 回复(0) 喜欢(0)     评分
dan800913
路人甲
路人甲
  • 注册日期2005-01-10
  • 发帖数102
  • QQ
  • 铜币617枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2005-09-08 17:49
<P>我想实现toccontrol右键菜单的deletelayer命令,我是这样的思路:首先建立一个deletelayer类,然后将其作为imenudef的一个item加载,然后通过itoolbarmenu实现toccontrol的右键菜单。但是现在的问题是如何将toccontrol.hittest获取的layer传给deletelayer呢?我现在搞不明白这之间的逻辑关系,郁闷!</P>
<P>请大家帮忙啊!</P>
举报 回复(0) 喜欢(0)     评分
kisssy
卧底
卧底
  • 注册日期2004-04-18
  • 发帖数235
  • QQ
  • 铜币614枚
  • 威望2点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2005-09-08 20:44
toccontrol 绑定的是Mapcontrol吗?
个人专栏: https://zhuanlan.zhihu.com/c_165676639
举报 回复(0) 喜欢(0)     评分
dan800913
路人甲
路人甲
  • 注册日期2005-01-10
  • 发帖数102
  • QQ
  • 铜币617枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2005-09-08 21:02
不是,是globecontrol,弄了一天了,还是没有弄出来!
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部