|
阅读:2569回复:8
如何在TOCcontrol里通过点击图层名做右键菜单?
<P>TOCcontrol绑定了mapcontrol,想通过点击TOCcontrol里显示的图层树的图层名,做右键菜单,但是不知道怎么获取到图层名的位置。</P>
<P>请教各位大侠,谢谢!</P> |
|
|
1楼#
发布于:2005-06-17 15:24
<P>你可以直接在dll里的函数的参数里加上你的图层或者代替图层的变量</P>
<P>那在你的dll里就有了你得到的图层的信息,问题就解决啦</P> |
|
|
|
2楼#
发布于:2005-06-17 09:11
用hittest得到了图层,可是怎么把这个得到的图层传到右键菜单项中呀,因为菜单项是在另一个dll中呀
|
|
|
3楼#
发布于:2005-04-30 21:31
<P>Private m_pMenuMap As IToolbarMenu 'TocControl上Map的右键菜单</P><P>If button = 2 Then
'Determine what kind of item has been clicked on m_pTocControl.HitTest x, y, pItem, pMap, pLayer, pLegendGroup, pIndex m_pMapControl.CustomProperty = pLayer Set pSelSymLayer = pLayer '弹出上下文菜单 If pItem = esriTOCControlItem.esriTOCControlItemMap Then m_pMenuMap.PopupMenu x, y, m_pTocControl.hwnd If pItem = esriTOCControlItem.esriTOCControlItemLayer Then m_pMenuLayer.PopupMenu x, y, m_pTocControl.hwnd End If</P> |
|
|
|
4楼#
发布于:2005-04-30 18:13
<P>试试假上语句if button=2 then</P><P> endif </P><P>看看</P>
|
|
|
5楼#
发布于:2005-04-28 21:44
vb也可以
|
|
|
|
6楼#
发布于:2005-04-28 14:56
vb.net中右击可以的,我都做到了!
|
|
|
7楼#
发布于:2005-04-28 09:24
<P>已经做到了,但是出现一个问题,就是TOC控件的OnMouseUp事件里的右键无法响应(左键没有问题),后来发现必须要双击才能激发这个右键事件,觉得很奇怪,不知道大侠是否知道是何缘故?</P><P>也因此做这个TOC控件点击图层做右键菜单时,出现了双击右键才能出右键菜单来。这是问题一。</P><P>另外,后来用OnMouseDown来做右键菜单,发现问题是:激发右键菜单后,如果不去点击右键菜单里的菜单项,而是另外再右键点击另一图层来激发右键菜单时,必须要按两次才行。这是问题二。</P><P>若不是engine的控件就没有问题,如button、form等的右键菜单测试都不会出现以上问题。</P><P>不得其解,若有大侠知道,请给予指点,不胜感激!</P>
|
|
|
8楼#
发布于:2005-04-26 14:40
<P>TOC有一个HitTest方法,用它可以得到你所点击图层。</P>
|
|