亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? modlabel3dtoolbar.bas

?? gis地圖 --- --- --文字1
?? BAS
?? 第 1 頁 / 共 3 頁
字號:
Attribute VB_Name = "modLabel3DToolbar"

' Copyright 1995-2004 ESRI

' All rights reserved under the copyright laws of the United States.

' You may freely redistribute and use this sample code, with or without modification.

' Disclaimer: THE SAMPLE CODE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 
' WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
' FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ESRI OR 
' CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 
' OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
' SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
' INTERRUPTION) SUSTAINED BY YOU OR A THIRD PARTY, HOWEVER CAUSED AND ON ANY 
' THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ARISING IN ANY 
' WAY OUT OF THE USE OF THIS SAMPLE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF 
' SUCH DAMAGE.

' For additional information contact: Environmental Systems Research Institute, Inc.

' Attn: Contracts Dept.

' 380 New York Street

' Redlands, California, U.S.A. 92373 

' Email: contracts@esri.com


'   main module for LABEL3D Toolbar

Option Explicit

Dim m_bDontUpdateDefaults As Boolean
Global g_pLabelEngine As Label3DEngine  '   main label engine class
Global g_bDuringCommand As Boolean      '   flag to ignore certain events
Global g_bLoading As Boolean            '   ""          ""
Global m_pLblEvents As LblEvents        '   handler for scene events where we add labels to engine
Global g_pDoc As ISxDocument            '   global doc reference

Global g_pApp As IApplication


Global g_pCurrentGroup As LabelGroup    '   current label group loaded in tool
Global g_pCurrentLBL As IDDDText        '   current label in tool
                                        '   for getting current cursor position:
Type POINT_TYPE
  X As Long
  Y As Long
End Type
Declare Function GetCursorPos Lib "user32.dll" (lpPoint As POINT_TYPE) As Long

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
         "GetOpenFileNameA" (pOPENFILENAME As OPENFILENAME) As Long
         
Private Type OPENFILENAME
  lStructSize As Long
  hwndOwner As Long
  hInstance As Long
  lpstrFilter As String
  lpstrCustomFilter As String
  nMaxCustFilter As Long
  nFilterIndex As Long
  lpstrFile As String
  nMaxFile As Long
  lpstrFileTitle As String
  nMaxFileTitle As Long
  lpstrInitialDir As String
  lpstrTitle As String
  FLAGS As Long
  nFileOffset As Integer
  nFileExtension As Integer
  lpstrDefExt As String
  lCustData As Long
  lpfnHook As Long
  lpTemplateName As String
End Type

Const OFN_ALLOWMULTISELECT = &H200
'Allow the user to select multiple files (Open File dialog box only).
Const OFN_CREATEPROMPT = &H2000
'Prompt if a non-existing file is chosen.
Const OFN_ENABLEHOOK = &H20
'Use the function specified by lpfnHook to process the dialog box's messages.
Const OFN_ENABLETEMPLATE = &H40
'Use the dialog box template specifed by hInstance and lpTemplateName.
Const OFN_ENABLETEMPLATEHANDLE = &H80
'Use the preloaded dialog box template specified by hInstance.
Const OFN_EXTENSIONDIFFERENT = &H400
'The function sets this flag if the user selects a file with an extension different than the one specified by lpstrDefExt.
Const OFN_FILEMUSTEXIST = &H1000
'Only allow the selection of existing files.
Const OFN_HIDEREADONLY = &H4
'Hide the Open As Read Only check box (Open File dialog box only).
Const OFN_NOCHANGEDIR = &H8
'Don 't change Windows's current directory to match the one chosen in the dialog box.
Const OFN_NODEREFERENCELINKS = &H100000
'If a shortcut file (.lnk or .pif) is chosen, return the shortcut file itself instead of the file or directory it points to.
Const OFN_NONETWORKBUTTON = &H20000
'Hide and disable the Network button in the dialog box.
Const OFN_NOREADONLYRETURN = &H8000
'The function sets this flag if the selected file is not read-only (Open File dialog box only).
Const OFN_NOVALIDATE = &H100
'Don 't check the filename for invalid characters.
Const OFN_OVERWRITEPROMPT = &H2
'Prompt the user if the chosen file already exists (Save File dialog box only).
Const OFN_PATHMUSTEXIST = &H800

Const OFN_READONLY = &H1

Const OFN_SHAREAWARE = &H4000
Const OFN_SHOWHELP = &H10


Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOPENFILENAME As OPENFILENAME) As Long

'
'   accept a layername or index and return the corresponding ILayer
'
Public Function GetLayer(sLayer) As ILayer
  Dim pSxDoc As ISxDocument
  Dim pTOCs As ISxContentsView
  Dim pTOC  As IContentsView
  Dim i As Integer
  Dim pLayers As IEnumLayer
  Dim pLayer As ILayer
  Dim pGroupLayer As ICompositeLayer
  Dim pLayer2 As ILayer
  
  On Error GoTo GetLayer_Err
  
  If IsNumeric(sLayer) Then
  '   if numeric index, this is easy:
    If TypeOf g_pApp.Document Is ISxDocument Then
      Set pSxDoc = g_pApp.Document
      Set GetLayer = pSxDoc.Scene.Layer(sLayer)
    End If
  Else
  '   iterate through document layers looking for a name match:
    If TypeOf g_pApp.Document Is ISxDocument Then
      
      Set pSxDoc = g_pApp.Document
      Set pLayers = pSxDoc.Scene.Layers

      Set pLayer = pLayers.Next
      Do While Not pLayer Is Nothing
        
        If TypeOf pLayer Is ICompositeLayer Then
          
          Set pGroupLayer = pLayer
          For i = 0 To pGroupLayer.Count - 1
            Set pLayer2 = pGroupLayer.Layer(i)
            If UCase(sLayer) = UCase(pLayer2.Name) Then
              Set GetLayer = pLayer2
              Exit Function
            End If
          Next
          
        Else
        
          If UCase(sLayer) = UCase(pLayer.Name) Then
            Set GetLayer = pLayer
            Exit Function
          End If
        
        End If
        
        Set pLayer = pLayers.Next
      Loop
      
    End If
  End If
  Exit Function
  
GetLayer_Err:

End Function

Public Sub HideUnusedForms()
On Error Resume Next
    frmSlider.Hide
    
End Sub



Public Sub ResetDocStuff()
    
    g_bLoading = True
'   init the label engine
    Set g_pLabelEngine = New Label3DEngine
    g_pLabelEngine.Init g_pDoc.Scene

'   add the default graphics layer label group to the interface:
    frmProps.cmbLayers.Clear
    frmProps.cmbLabelField.Clear
    g_bLoading = False
    
    AddToFormLayerList g_pLabelEngine.LabelGroup(0)
    UpdateGroupLayersExtent

End Sub

Public Sub UpdateLabels(pLay As LabelGroup, Optional sForWhat As String, Optional bMessageOnly As Boolean, Optional sMessage As String, Optional bNoVisibility As Boolean)

Dim n As Double
Dim pDDD As IDDDText
Dim pPt As IPoint
Dim X As Double
Dim Y As Double
Dim z As Double
Dim xRot As Double, yRot As Double, zRot As Double


On Error GoTo UpdateLabels_ERR

'   for each label in the lablegroup, set the properties from the owner group:
    For Each pDDD In pLay.Labels
        With pDDD
            
            If bMessageOnly Then
                .Message = sMessage
            ElseIf Len(Trim(sForWhat)) > 1 Then
                Select Case UCase(sForWhat)
                
                    Case "FONT SIZE", "FONT"
                        .FontSize = pLay.FontSize
                        .FontName = pLay.FontName
                        Set .Color = pLay.FontColor
                        
                    Case "X ROTATION"
                        .GetAxisRotation xRot, yRot, zRot
                        .SetAxisRotation pLay.XRotation, yRot, zRot
                    Case "Y ROTATION"
                        .GetAxisRotation xRot, yRot, zRot
                        .SetAxisRotation xRot, pLay.YRotation, zRot
                    Case "Z ROTATION"
                        .GetAxisRotation xRot, yRot, zRot
                        .SetAxisRotation xRot, yRot, pLay.ZRotation

                    Case "X OFFSET", "Y OFFSET", "Z OFFSET"
                        Set pPt = New Point
                        pPt.PutCoords .Origin.X + pLay.m_nXOff, .Origin.Y + pLay.m_nYOff
                        pPt.z = .Origin.z + pLay.m_nZOff
                        Set .Origin = pPt
                        
                    Case "BILLBOARDING"
                        pDDD.AutoAdjust = pLay.Billboarding
                End Select
            End If
            
        
            If Not bNoVisibility Then
                .Enabled = pLay.Visible
            End If
        End With
        
    Next
    
    pLay.m_nXOff = 0
    pLay.m_nYOff = 0
    pLay.m_nZOff = 0
    

    RefreshViewers

    Exit Sub
    
UpdateLabels_ERR:
    MsgBox "UpdateLabels_ERR: " & Err.Description
    Debug.Print "UpdateLabels_ERR: " & Err.Description
End Sub


Public Sub UpdateBillBoarding()


    UpdateLabels g_pCurrentGroup

     
End Sub
Public Sub InitLayerLabelList(Optional bClearFirst As Boolean)
Dim pLayer As ILayer
Dim pFLayer As IFeatureLayer
Dim pLayers As IEnumLayer
Dim pclsLayers As LabelGroup
Dim pFieldNames As Collection
Dim sItem As String
Dim i As Integer
Dim bExists As Boolean

On Error GoTo InitLayerLabelList_ERR

'   get all layers in scene:
    If g_pDoc.Scene.LayerCount > 0 Then
        Set pLayers = g_pDoc.Scene.Layers()
        Set pLayer = pLayers.Next
    End If

If bClearFirst Then
    g_bLoading = True
    frmProps.cmbLayers.Clear
    frmProps.cmbLayers.AddItem "<graphics layer>"
    frmProps.cmbLayers.ListIndex = 0
    g_bLoading = False
End If

'   for each feature layer, call the AddLayerToLabelListRouteine which will
'   get first usable field name, create new layerlabel class, add to collection:
    Do While Not pLayer Is Nothing
        If TypeOf pLayer Is IFeatureLayer Then
            Set pFLayer = pLayer
            AddLayerToLabelList pFLayer
        Else
            Debug.Print pLayer.Name & " is not an ifeaturelayer..."
        End If
        Set pLayer = pLayers.Next
    Loop

    UpdateGroupLayersExtent
    


    Exit Sub
    
InitLayerLabelList_ERR:
    'MsgBox "InitLayerLabelList_ERR: " & Err.Description

End Sub

'   main tool setup:
'
Public Sub Init3DLabelTools()
On Error GoTo Init3DLabelTools_ERR

    Set m_pLblEvents = New LblEvents      '  scene graph event handler
    Set g_pDoc = g_pApp.Document        '  global doc reference
    Set m_pLblEvents.m_pSxDoc = g_pDoc       '  pass to event handler
    Set m_pLblEvents.m_pScene = g_pDoc.Scene '  pass to event handler

'   init the label engine
    Set g_pLabelEngine = New Label3DEngine
    g_pLabelEngine.Init g_pDoc.Scene

'   add the default graphics layer label group to the interface:
    frmProps.cmbLayers.Clear
    frmProps.cmbLabelField.Clear
    AddToFormLayerList g_pLabelEngine.LabelGroup(0)
    UpdateGroupLayersExtent
    
'   refresh the main form:
    frmProps.RefreshMe

    Exit Sub
    
Init3DLabelTools_ERR:
    Debug.Print "Init3DLabelTools_ERR: " & Err.Description
    Resume Next
    
End Sub
Public Sub DoInit(ByVal hook As Object)
On Error Resume Next

    
  If (g_pApp Is Nothing) Then
    Set g_pApp = hook
    Init3DLabelTools
    InitLayerLabelList True
  Else
    'InitLayerLabelList
  End If

End Sub
Public Function GetUsableFieldNames(pLayer As IFeatureLayer) As Collection
Dim pColl As New Collection
Dim pFields As IFields
Dim i As Integer
    
On Error GoTo GetUsableFieldNames_ERR
'esriFieldTypeSmallInteger 0 Integer.
'esriFieldTypeInteger 1 Long Integer.
'esriFieldTypeSingle 2 Single-precision floating-point number.
'esriFieldTypeDouble 3 Double-precision floating-point number.
'esriFieldTypeString 4 Character string.
'esriFieldTypeDate 5 Date.

    Set pColl = New Collection
    Set pFields = pLayer.FeatureClass.Fields
    For i = 0 To pFields.FieldCount - 1
        If pFields.Field(i).Type < 5 Then
            pColl.Add pFields.Field(i).Name
        End If
    Next
    
    Set GetUsableFieldNames = pColl
        
    Exit Function
    
GetUsableFieldNames_ERR:
    Debug.Assert 0
    Debug.Print "GetUsableFieldNames_ERR: " & Err.Description
    
End Function

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频一区在线观看| 蜜臀久久久久久久| 日本特黄久久久高潮| 成人影视亚洲图片在线| 欧美另类z0zxhd电影| 中文字幕av免费专区久久| 日韩成人免费电影| 在线观看亚洲精品视频| 欧美国产精品中文字幕| 久久国产视频网| 制服丝袜亚洲精品中文字幕| 亚洲精品视频免费观看| 成人激情动漫在线观看| xfplay精品久久| 久久精品国产亚洲aⅴ| 欧美精品18+| 亚洲国产一区二区三区青草影视| 91玉足脚交白嫩脚丫在线播放| 久久久久久久精| 久久99热狠狠色一区二区| 欧美日韩aaaaa| 午夜伊人狠狠久久| 欧美日韩国产精品成人| 亚洲第一久久影院| 欧美天堂一区二区三区| 亚洲一卡二卡三卡四卡 | 亚洲蜜桃精久久久久久久| 黄网站免费久久| 久久婷婷色综合| 韩日精品视频一区| 国产欧美一区视频| 福利一区二区在线观看| 欧美激情一区二区三区蜜桃视频| 国产乱人伦精品一区二区在线观看| 欧美大片一区二区| 国产一区二区三区观看| 久久九九影视网| 成人高清免费观看| 综合久久久久久| 欧美中文字幕一区| 性做久久久久久免费观看欧美| 欧美日韩在线观看一区二区 | 欧美色视频一区| 视频在线观看一区| 日韩免费观看2025年上映的电影 | 日韩国产高清在线| 欧美精品一区男女天堂| 国产不卡高清在线观看视频| 亚洲素人一区二区| 欧美中文字幕不卡| 看片的网站亚洲| 中文字幕精品在线不卡| 91成人在线免费观看| 日韩—二三区免费观看av| 久久众筹精品私拍模特| 99re视频这里只有精品| 亚洲成人av电影在线| 日韩美女天天操| 91网上在线视频| 日韩成人免费在线| 国产精品美女久久久久久久| 欧美日韩一区三区四区| 国产精品中文欧美| 亚洲一区精品在线| 久久久久亚洲蜜桃| 欧美性感一类影片在线播放| 精品一区二区三区视频| 亚洲视频在线一区观看| 日韩欧美国产综合在线一区二区三区| 国产福利一区在线| 婷婷开心激情综合| 中文字幕精品综合| 日韩精品一区二区在线| 色诱亚洲精品久久久久久| 激情五月婷婷综合网| 亚洲午夜久久久久中文字幕久| 日韩一区二区三区在线视频| 99国产精品久久久久久久久久久| 日本在线播放一区二区三区| 国产精品欧美一级免费| 日韩西西人体444www| 91成人国产精品| 国产成人亚洲综合色影视| 五月天久久比比资源色| 亚洲日韩欧美一区二区在线| 久久一夜天堂av一区二区三区 | 国产喂奶挤奶一区二区三区| 欧美三区在线观看| 99久久99久久精品国产片果冻| 精品一区二区综合| 午夜婷婷国产麻豆精品| 亚洲色图丝袜美腿| 国产精品无人区| 久久九九久久九九| 久久久亚洲精品石原莉奈| 欧美一区二区三区免费在线看| 91免费版在线看| av毛片久久久久**hd| 成人午夜在线免费| 国产精品白丝jk白祙喷水网站| 久久99精品国产91久久来源 | 亚洲综合小说图片| 中文字幕一区二区三区色视频| 精品国产一区二区三区忘忧草| 欧美日本国产一区| 在线电影院国产精品| 欧美视频日韩视频在线观看| 91丨porny丨蝌蚪视频| 成+人+亚洲+综合天堂| 高清国产午夜精品久久久久久| 国产一区二区伦理片| 韩国成人精品a∨在线观看| 另类欧美日韩国产在线| 理论电影国产精品| 精品一区二区在线看| 国产麻豆精品视频| 国产sm精品调教视频网站| 国产乱码精品一区二区三区忘忧草| 美国欧美日韩国产在线播放| 美女尤物国产一区| 国内成+人亚洲+欧美+综合在线| 另类综合日韩欧美亚洲| 国产电影一区在线| av在线不卡网| 欧美自拍偷拍午夜视频| 3d成人动漫网站| 精品成人一区二区三区| 欧美国产欧美综合| 一区二区三区免费网站| 午夜精品成人在线| 蜜桃av一区二区在线观看| 国精品**一区二区三区在线蜜桃| 国产激情视频一区二区在线观看 | 卡一卡二国产精品 | 欧美精品亚洲一区二区在线播放| 欧美日韩不卡一区二区| 精品久久久久久无| 国产精品久久免费看| 亚洲高清在线精品| 黑人巨大精品欧美一区| 99精品国产一区二区三区不卡| 欧美视频三区在线播放| 精品国产凹凸成av人导航| 亚洲国产精品av| 亚洲综合区在线| 国产又粗又猛又爽又黄91精品| jlzzjlzz亚洲女人18| 在线91免费看| 国产精品妹子av| 丝袜美腿亚洲一区二区图片| 国产乱淫av一区二区三区 | 欧美大黄免费观看| 最新中文字幕一区二区三区| 亚洲va在线va天堂| 国产91在线观看丝袜| 制服.丝袜.亚洲.另类.中文| 中国av一区二区三区| 日韩av中文字幕一区二区| 成人18视频在线播放| 日韩一区二区三区在线视频| 中文字幕一区二区不卡| 美女一区二区久久| 色婷婷精品久久二区二区蜜臀av | 国产一区二三区| 欧美日韩高清不卡| 国产精品免费网站在线观看| 日本美女一区二区三区视频| 色综合天天综合狠狠| 久久综合九色综合欧美亚洲| 无码av免费一区二区三区试看| 不卡av电影在线播放| 精品国产91洋老外米糕| 亚洲成人av福利| 91福利在线导航| 国产精品高潮呻吟久久| 国产综合久久久久影院| 91麻豆精品91久久久久久清纯| 亚洲日本丝袜连裤袜办公室| 国产一区二区h| 日韩一级视频免费观看在线| 亚洲一区二区三区国产| 91香蕉视频黄| 亚洲天堂a在线| 91最新地址在线播放| 日韩一区有码在线| 成人网在线播放| 国产亚洲婷婷免费| 麻豆91精品视频| 日韩欧美中文一区二区| 香蕉乱码成人久久天堂爱免费| 在线视频欧美区| 亚洲一区二区三区精品在线| 色综合久久久久久久久| 亚洲人成网站精品片在线观看| voyeur盗摄精品| 亚洲人精品午夜| 91久久精品一区二区| 一区二区三区在线免费播放| 欧美三级日韩三级国产三级| 亚洲成av人片一区二区|