阅读:1552回复:1
[求助]ITOCControl
有哪位大侠知道在ITOCControl里如何实现ctrl+鼠标左键实现图层多选的功能?请赐教啊,不胜感激!
|
|
1楼#
发布于:2005-09-06 11:46
<P><STRONG>这段代码你看一看有没有帮助!</STRONG></P>
<P><STRONG>Sub SelectLayersInDisplayView()<BR>' selects all of the layers in the first data frame in the TOC's display view<BR> Dim pMxDoc As IMxDocument </STRONG></P> <P><STRONG>Set pMxDoc = ThisDocument </STRONG></P> <P><STRONG>Dim pTOC As IContentsView </STRONG></P> <P><STRONG>Set pTOC = pMxDoc.ContentsView(0) </STRONG></P> <P><STRONG>' Display View </STRONG></P> <P><STRONG> Dim pMaps As IMaps </STRONG></P> <P><STRONG>Set pMaps = pMxDoc.Maps </STRONG></P> <P><STRONG>Dim pMap As IMap </STRONG></P> <P><STRONG>Dim i As Integer </STRONG></P> <P><STRONG>Set pMap = pMaps.Item(0) </STRONG></P> <P><STRONG>' first data frame </STRONG></P> <P><STRONG>Dim pEnumLayer As IEnumLayer </STRONG></P> <P><STRONG>Set pEnumLayer = pMap.Layers(, False) </STRONG></P> <P><STRONG>' we will not select layers within group layers </STRONG></P> <P><STRONG>Dim pLayer As ILayer </STRONG></P> <P><STRONG>Set pLayer = pEnumLayer.Next pTOC.RemoveFromSelectedItems pTOC.SelectedItem </STRONG></P> <P><STRONG>Do While Not pLayer Is Nothing <FONT color=#ff0000>pTOC.AddToSelectedItems pLayer pTOC.Refresh pLayer </FONT></STRONG></P> <P><STRONG><FONT color=#ff0000> Set pLayer = pEnumLayer.Next </FONT></STRONG></P> <P><STRONG>Loop </STRONG></P> <P><STRONG>End Sub</STRONG></P><STRONG> <P><BR>Sub SelectDataFrameInSourceView()<BR>' selects the first data frame in the TOC's source view<BR> </P> <P>Dim pMxDoc As IMxDocument </P> <P>Set pMxDoc = ThisDocument </P> <P>Dim pTOC As IContentsView </P> <P>Set pTOC = pMxDoc.ContentsView(1) </P> <P>' Source View </P> <P>Dim pMaps As IMaps </P> <P>Set pMaps = pMxDoc.Maps </P> <P>Dim pMap As IMap </P> <P>Set pMap = pMaps.Item(0) </P> <P>' first data frame pTOC.SelectedItem = Nothing pTOC.SelectedItem = pMap </P> <P>pTOC.Refresh pMap</P> <P>End Sub</STRONG></P> |
|