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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mod_symbol.bas

?? arcengine+vb開發(fā)原碼
?? BAS
?? 第 1 頁 / 共 2 頁
字號:
Attribute VB_Name = "ModSymbol"
Option Explicit
'功能:符號預(yù)覽

Public Const COLORONCOLOR = 3

Public Const HORZSIZE = 4
Public Const VERTSIZE = 6
Public Const HORZRES = 8
Public Const VERTRES = 10
Public Const ASPECTX = 40
Public Const ASPECTY = 42
Public Const LOGPIXELSX = 88
Public Const LOGPIXELSY = 90

Public Type GUID
  Data1 As Long
  Data2 As Integer
  Data3 As Integer
  Data4(7) As Byte
End Type

Public Type PicDesc
  SIZE As Long
  Type As Long
  hBmp As Long
  hPal As Long
  Reserved As Long
End Type

Public Type RECT
  Left As Long
  Top As Long
  Right As Long
  Bottom As Long
End Type

Public Type SIZE
  X As Long
  Y As Long
End Type

Public Type POINTAPI
  X As Long
  Y As Long
End Type

Public Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (pDesc As PicDesc, RefIID As GUID, ByVal fPictureOwnsHandle As Long, pPic As IPicture) As Long
Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Public Declare Function SetStretchBltMode Lib "gdi32" (ByVal hdc As Long, ByVal nStretchMode As Long) As Long
Public Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Public Declare Function FillRect Lib "USER32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
Public Declare Function GetWindowRect Lib "USER32" (ByVal hWnd As Long, lpRect As RECT) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Public Declare Function GetDC Lib "USER32" (ByVal hWnd As Long) As Long
Public Declare Function ReleaseDC Lib "USER32" (ByVal hWnd As Long, ByVal hdc As Long) As Long
Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long

Public Declare Function GetWindowExtEx Lib "gdi32" (ByVal hdc As Long, lpSize As SIZE) As Long
Public Declare Function GetViewportExtEx Lib "gdi32" (ByVal hdc As Long, lpSize As SIZE) As Long
Public Declare Function GetMapMode Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function LPtoDP Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
Public Declare Function GetClientRect Lib "USER32" (ByVal hWnd As Long, lpRect As RECT) As Long

Public Function SaveSymbolToBitmapFile(ByVal hDCOld As Long, ByVal pSymbol As ISymbol, ByVal lWidth As Long, ByVal lHeight As Long, ByVal sFilePath As String, Optional lGap As Long = 0) As Boolean

  On Error GoTo errH
    
  SaveSymbolToBitmapFile = False
    
  Dim pPicture As IPicture, hBmpNew As Long
  Set pPicture = CreatePictureFromSymbol(hDCOld, hBmpNew, pSymbol, lWidth, lHeight, lGap)
  If Not pPicture Is Nothing Then
    SavePicture pPicture, sFilePath
    DeleteObject hBmpNew
    SaveSymbolToBitmapFile = True
  End If
  
Exit Function
errH:
  If Err.Number <> 0 Then
    Dim sError As String, lError As Long
    sError = Err.Description
    lError = Err.Number
    Err.Clear
    Err.Raise vbObjectError + 7020, "basDrawSymbol.SaveSymbolToBitmapFile", "Error occured while saving to bitmap file." & vbNewLine & "Error " & CStr(lError) & sError
  End If
End Function

Public Function CreatePictureFromSymbol(ByVal hDCOld As Long, ByRef hBmpNew As Long, ByVal pSymbol As ISymbol, ByVal lWidth As Long, ByVal lHeight As Long, Optional lGap As Long = 0) As IPictureDisp
  On Error GoTo errH
  
  Dim hDCNew As Long, hBmpOld As Long
  hDCNew = CreateCompatibleDC(hDCOld)
  hBmpNew = CreateCompatibleBitmap(hDCOld, lWidth, lHeight)
  hBmpOld = SelectObject(hDCNew, hBmpNew)
  
  Dim lResult As Long
  lResult = DrawToDC(hDCNew, lWidth, lHeight, pSymbol, lGap)
  
  hBmpNew = SelectObject(hDCNew, hBmpOld)
  DeleteDC hDCNew

  Set CreatePictureFromSymbol = CreatePictureFromBitmap(hBmpNew)

Exit Function
errH:
  If Err.Number <> 0 Then
    If Not pSymbol Is Nothing Then
      pSymbol.ResetDC
      If hBmpNew <> 0 And hDCNew <> 0 And hBmpOld <> 0 Then
        hBmpNew = SelectObject(hDCNew, hBmpOld)
        DeleteDC hDCNew
      End If
    End If
  End If
End Function

Private Function CreatePictureFromBitmap(ByVal hBmpNew As OLE_HANDLE) As IPictureDisp
  Dim pic As PicDesc
  Dim pPic As IPicture
  Dim IID_IDispatch As GUID

  With IID_IDispatch
     .Data1 = &H20400
     .Data4(0) = &HC0
     .Data4(7) = &H46
  End With

  With pic
     .SIZE = Len(pic)
     .Type = vbPicTypeBitmap
     .hBmp = hBmpNew
     .hPal = 0
  End With

  Dim Result As Long
  Result = OleCreatePictureIndirect(pic, IID_IDispatch, True, pPic)
  Debug.Print "Result OLE call: " & Result
  
  Set CreatePictureFromBitmap = pPic
End Function

Public Function DrawToWnd(ByVal hWnd As OLE_HANDLE, ByVal pSymbol As ISymbol, Optional lGap As Long = 0) As Boolean
  On Error GoTo errH
  
  DrawToWnd = False
  
  Dim hdc As OLE_HANDLE
  If hWnd <> 0 Then
           
    Dim udtRect As RECT, lResult  As Long
    lResult = GetClientRect(hWnd, udtRect)
    
    If lResult <> 0 Then
      Dim lWidth As Long, lHeight As Long
      lWidth = udtRect.Right - udtRect.Left
      lHeight = udtRect.Bottom - udtRect.Top
      
      hdc = GetDC(hWnd)
      If hdc <> 0 Then
        DrawToWnd = DrawToDC(hdc, lWidth, lHeight, pSymbol, lGap)
      End If
      ReleaseDC hWnd, hdc
    End If
  End If

Exit Function
errH:
  If Err.Number <> 0 Then
    If Not pSymbol Is Nothing Then
      pSymbol.ResetDC
    End If
    If hWnd <> 0 And hdc <> 0 Then
      ReleaseDC hWnd, hdc
    End If
    Exit Function
  End If
End Function

Public Function DrawToDC(ByVal hdc As OLE_HANDLE, lWidth As Long, lHeight As Long, ByVal pSymbol As ISymbol, Optional lGap As Long = 0) As Boolean
  On Error GoTo errH
  
  DrawToDC = False
  
  If hdc <> 0 Then
  
    If Not Clear(hdc, &HFFFFFF, 0, 0, lWidth, lHeight) Then
      Err.Raise vbObjectError + 7002, "basDrawSymbol.DrawToDC", "Could not clear the Device Context."
      Exit Function
    End If
            
    Dim pEnvelope As IEnvelope, pTransformation As ITransformation, pGeom As IGeometry
    Set pEnvelope = New Envelope
    pEnvelope.PutCoords lGap, lGap, lWidth - lGap, lHeight - lGap
    Set pTransformation = CreateTransFromDC(hdc, lWidth, lHeight)
    Set pGeom = CreateSymShape(pSymbol, pEnvelope)
    
    If Not pTransformation Is Nothing And Not pGeom Is Nothing Then
      pSymbol.SetupDC hdc, pTransformation
      pSymbol.Draw pGeom
      pSymbol.ResetDC
      DrawToDC = True
    Else
      Err.Raise vbObjectError + 7008, "basDrawSymbol.DrawToDC", "Could not create required Transformation or Geometry for this draw operation."
    End If
  End If

Exit Function
errH:
  If Err.Number <> 0 Then
    If Not pSymbol Is Nothing Then
      pSymbol.ResetDC
    End If
  End If
End Function

Private Function Clear(ByVal hdc As Long, ByVal backgroundColor As Long, ByVal xMin As Long, ByVal yMin As Long, ByVal xMax As Long, ByVal yMax As Long) As Boolean
  
  On Error GoTo errH
  
  Dim hBrushBackground As Long, udtBounds As RECT, lResult  As Long
  With udtBounds
    .Left = xMin
    .Top = yMin
    .Right = xMax
    .Bottom = yMax
  End With
  
  hBrushBackground = CreateSolidBrush(backgroundColor)
  If hBrushBackground = 0 Then
    Err.Raise vbObjectError + 7003, "basDrawSymbol.Clear", "Could not create GDI Brush."
    Exit Function
  End If
  
  lResult = FillRect(hdc, udtBounds, hBrushBackground)
  If hBrushBackground = 0 Then
    Err.Raise vbObjectError + 7004, "basDrawSymbol.Clear", "Could not fill Device Context."
  End If
    
  lResult = DeleteObject(hBrushBackground)
  If hBrushBackground = 0 Then
    Err.Raise vbObjectError + 7005, "basDrawSymbol.Clear", "Could not delete GDI Brush."
  End If
  
  Clear = True
  
Exit Function
errH:
  If Err.Number <> 0 Then
    Clear = False
    If hBrushBackground <> 0 Then
      lResult = DeleteObject(hBrushBackground)
    End If
  End If
End Function

Private Function CreateTransFromDC(ByVal hdc As Long, ByVal lWidth As Long, ByVal lHeight As Long) As ITransformation
  
  On Error GoTo errH
  
  Dim pBoundsEnvelope As IEnvelope
  Set pBoundsEnvelope = New Envelope
  pBoundsEnvelope.PutCoords 0, 0, lWidth, lHeight
  
  Dim deviceRect As tagRECT
  With deviceRect
    .Left = 0
    .Top = 0
    .Right = lWidth
    .Bottom = lHeight
  End With
  
  Dim dpi As Long
  dpi = GetDeviceCaps(hdc, LOGPIXELSY)
  If dpi = 0 Then
    Err.Raise vbObjectError + 7006, "basDrawSymbol.CreateTransFromDC", "Could not retrieve Resolution from device context."
    Exit Function
  End If
  
  Dim pDisplayTransformation As IDisplayTransformation
  Set CreateTransFromDC = New DisplayTransformation
  Set pDisplayTransformation = CreateTransFromDC
  With pDisplayTransformation
    .VisibleBounds = pBoundsEnvelope
    .Bounds = pBoundsEnvelope
    .DeviceFrame = deviceRect
    .Resolution = dpi
  End With

Exit Function
errH:
  If Err.Number <> 0 Then
    Set CreateTransFromDC = Nothing
  End If
End Function

Private Function CreateSymShape(ByVal pSymbol As ISymbol, ByVal pEnvelope As IEnvelope) As IGeometry
  
  On Error GoTo errH
  
  If TypeOf pSymbol Is IMarkerSymbol Then
    Dim pArea As IArea
    Set pArea = pEnvelope
    Set CreateSymShape = pArea.Centroid
  ElseIf TypeOf pSymbol Is ILineSymbol Or TypeOf pSymbol Is ITextSymbol Then
    Dim pPolyline As IPolyline
    Set pPolyline = New Polyline
    pPolyline.FromPoint = pEnvelope.LowerLeft
    pPolyline.ToPoint = pEnvelope.UpperRight
    Set CreateSymShape = pPolyline
  Else
    Set CreateSymShape = pEnvelope
  End If
  
Exit Function
errH:
  If Err.Number <> 0 Then
    Set CreateSymShape = Nothing
  End If
End Function

Public Function GetLayerSymbols(pLayer As ILayer) As IArray

    If pLayer Is Nothing Then Exit Function
    
    Dim i As Integer
            
    Dim pGeoFeatureLayer As IGeoFeatureLayer
    Set pGeoFeatureLayer = pLayer
    If pGeoFeatureLayer Is Nothing Then Exit Function
    Dim pMySymbolArray  As ISymbolArray
    
    Dim pSymbolArray As IArray
    Set pSymbolArray = New esriSystem.Array
    Debug.Assert Not pSymbolArray Is Nothing
    If pSymbolArray Is Nothing Then Exit Function
    
    '簡單渲染圖層
    If TypeOf pGeoFeatureLayer.Renderer Is ISimpleRenderer Then
        Dim pSimpleRender As ISimpleRenderer
        Set pSimpleRender = pGeoFeatureLayer.Renderer
        pSymbolArray.Add pSimpleRender.Symbol
    End If
    
    '單值渲染圖層
    If TypeOf pGeoFeatureLayer.Renderer Is IUniqueValueRenderer Then
    
        Dim pUniqueValueRenderer As IUniqueValueRenderer
        Set pUniqueValueRenderer = pGeoFeatureLayer.Renderer
        Dim pSymbol As ISymbol
        Set pSymbol = pUniqueValueRenderer.Symbol(CStr(pUniqueValueRenderer.Value(0)))
        pSymbolArray.Add pSymbol
    
    End If
    
    '分類渲染圖層
    If TypeOf pGeoFeatureLayer.Renderer Is IClassBreaksRenderer Then
    
        Dim pClassRenderer As IClassBreaksRenderer
        Set pClassRenderer = pGeoFeatureLayer.Renderer
        
        For i = 0 To pClassRenderer.BreakCount - 1
            pSymbolArray.Add pClassRenderer.Symbol(i)
        Next i
        
    End If
    
    '圖表渲染圖層
    If TypeOf pGeoFeatureLayer.Renderer Is IChartRenderer Then
        
        Dim pChartRenderer As IChartRenderer
        Set pChartRenderer = pGeoFeatureLayer.Renderer
        Dim pChartSymbol As IChartSymbol
        Set pChartSymbol = pChartRenderer.ChartSymbol
            
        Set pMySymbolArray = pChartSymbol
        Debug.Assert Not pMySymbolArray Is Nothing
        If pMySymbolArray Is Nothing Then Exit Function
        
        For i = 0 To pMySymbolArray.SymbolCount - 1
            pSymbolArray.Add pMySymbolArray.Symbol(i)
        Next i
        
        Debug.Assert Not pSymbolArray.Count < 1
    
    End If
    
    '點(diǎn)密度渲染圖層(???)
    If TypeOf pGeoFeatureLayer.Renderer Is IDotDensityRenderer Then
    
        Dim pDotDensityRenderer As IDotDensityRenderer
        Set pDotDensityRenderer = pGeoFeatureLayer.Renderer
        Dim pDotDensityFillSymbol As IDotDensityFillSymbol
        Set pDotDensityFillSymbol = pDotDensityRenderer.DotDensitySymbol
        
        Set pMySymbolArray = pDotDensityFillSymbol
        
        For i = 0 To pMySymbolArray.SymbolCount - 1
            pSymbolArray.Add pMySymbolArray.Symbol(i)
        Next i
    
    End If
    
    If Not pSymbolArray.Count < 1 Then Set GetLayerSymbols = pSymbolArray
    Set pSymbolArray = Nothing
    
End Function

Public Function GetCurrentValueRanges(pLayer As ILayer) As Collection

    If pLayer Is Nothing Then Exit Function
    
    Dim pGeoFeatureLayer As IGeoFeatureLayer
    Set pGeoFeatureLayer = pLayer
    If pGeoFeatureLayer Is Nothing Then Exit Function
    
    Dim colValueRanges As Collection
    Set colValueRanges = New Collection
    Debug.Assert Not colValueRanges Is Nothing
    If colValueRanges Is Nothing Then Exit Function
    
    '分類渲染圖層
    If TypeOf pGeoFeatureLayer.Renderer Is IClassBreaksRenderer Then
    
        Dim pClassRenderer As IClassBreaksRenderer
        Set pClassRenderer = pGeoFeatureLayer.Renderer
        
        colValueRanges.Add "0" & "--" & pClassRenderer.Break(0)
        
        Dim i As Integer
        For i = 0 To pClassRenderer.BreakCount - 2
            colValueRanges.Add pClassRenderer.Break(i) & "-" & pClassRenderer.Break(i + 1)
        Next i
        
    End If
    
    If Not colValueRanges.Count < 1 Then Set GetCurrentValueRanges = colValueRanges
    Set colValueRanges = Nothing
    
End Function
Public Sub FeatuerSymbol(ByVal color As Long)
    Dim tempFeatureLayer As IGeoFeatureLayer

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
偷拍自拍另类欧美| 国产欧美精品日韩区二区麻豆天美| 亚洲欧美综合网| av色综合久久天堂av综合| 国产亚洲午夜高清国产拍精品| 国产一区在线精品| 亚洲国产经典视频| 色综合久久久久综合体桃花网| 亚洲精品成人少妇| 欧美日本视频在线| 久久91精品国产91久久小草| 精品久久国产老人久久综合| 国产99精品在线观看| 亚洲色图一区二区三区| 欧美人与禽zozo性伦| 麻豆国产精品一区二区三区| 久久久久久久久久美女| 91麻豆精品一区二区三区| 亚洲成av人综合在线观看| 日韩欧美一二三| 成人av在线资源网站| 亚洲成av人综合在线观看| 久久久久久久av麻豆果冻| 色婷婷亚洲一区二区三区| 日本成人在线网站| 国产精品久久久久影院亚瑟| 欧美日韩国产天堂| 国产成人免费高清| 亚洲国产美国国产综合一区二区| www欧美成人18+| 在线免费观看视频一区| 久久黄色级2电影| 日韩毛片视频在线看| 精品欧美一区二区三区精品久久 | 亚洲精品国久久99热| 欧美一区二区在线不卡| 91亚洲精品久久久蜜桃网站| 美女久久久精品| 一区二区三区资源| 国产三级一区二区| 欧美一级日韩一级| 色婷婷综合中文久久一本| 久久99久久久欧美国产| 亚洲一区二区三区中文字幕 | 亚洲久草在线视频| 精品免费99久久| 欧美日韩国产综合久久| caoporn国产一区二区| 韩国欧美国产一区| 午夜成人免费视频| 伊人婷婷欧美激情| 国产精品日韩成人| 久久综合色播五月| 91精品在线一区二区| 91网站在线播放| av一区二区久久| 国产精品性做久久久久久| 日本女优在线视频一区二区| 亚洲国产视频直播| 亚洲黄色性网站| 亚洲天堂av老司机| 国产精品天干天干在线综合| 精品国产乱码久久久久久久| 91精品欧美久久久久久动漫| 欧美日韩成人综合| 欧美性感一区二区三区| 色综合欧美在线| 99re66热这里只有精品3直播| 国产高清不卡一区二区| 国产黄色精品网站| 国产麻豆成人精品| 国产河南妇女毛片精品久久久| 91在线高清观看| 色综合视频在线观看| 91麻豆蜜桃一区二区三区| 色婷婷久久久久swag精品| 色综合久久天天综合网| 91免费在线看| 欧美午夜精品久久久| 欧美日韩精品久久久| 欧美一区二区福利视频| 欧美一级二级在线观看| 日韩欧美不卡在线观看视频| 精品国产乱码久久久久久久久| 久久蜜桃av一区二区天堂| 久久精品一区二区| 国产精品久久久久久久久动漫| 中文字幕在线不卡一区二区三区| 国产精品色婷婷久久58| 亚洲欧美日韩成人高清在线一区| 一区二区三区中文字幕电影| 午夜精品久久久久久久蜜桃app| 日韩国产高清影视| 国产综合久久久久影院| a级高清视频欧美日韩| 色综合天天天天做夜夜夜夜做| 欧日韩精品视频| 日韩一级高清毛片| 国产精品视频九色porn| 一区二区三区加勒比av| 蜜臀久久99精品久久久画质超高清| 久久成人免费电影| 白白色 亚洲乱淫| 欧美日韩精品一区二区天天拍小说 | 久久品道一品道久久精品| 国产精品久久夜| 午夜免费久久看| 国产美女在线观看一区| 色狠狠综合天天综合综合| 日韩一区二区免费在线电影| 日本一区二区三区国色天香| 亚洲一卡二卡三卡四卡 | 久久久亚洲精品石原莉奈| 亚洲欧洲一区二区在线播放| www.日本不卡| 91精品国产入口| 中文字幕亚洲在| 美国欧美日韩国产在线播放| 99精品黄色片免费大全| 欧美一区二区三区的| 国产精品国产三级国产| 日本欧美加勒比视频| 99精品视频在线观看免费| 91精品国产综合久久香蕉麻豆| 国产日韩一级二级三级| 婷婷久久综合九色国产成人 | 国产欧美日韩在线观看| 亚洲图片有声小说| 粉嫩av一区二区三区粉嫩| 欧美日韩日本视频| 国产精品蜜臀av| 激情偷乱视频一区二区三区| 欧美视频一区二| 中文字幕中文字幕一区| 国产麻豆午夜三级精品| 91精品中文字幕一区二区三区 | 三级欧美在线一区| 成人av网站在线| 久久综合国产精品| 日本亚洲三级在线| 91精品福利视频| 国产精品国产三级国产aⅴ原创| 麻豆国产精品视频| 在线播放91灌醉迷j高跟美女| 成人欧美一区二区三区黑人麻豆 | 色噜噜久久综合| 国产亚洲一区二区三区在线观看| 奇米影视在线99精品| 欧美日韩高清一区| 亚洲精品国产成人久久av盗摄| 9人人澡人人爽人人精品| www国产成人| 精品综合免费视频观看| 欧美一区二区三区日韩视频| 亚洲一区免费视频| 色狠狠综合天天综合综合| 自拍av一区二区三区| 91污片在线观看| 国产精品精品国产色婷婷| 成人蜜臀av电影| 国产精品久久久久久久久动漫| 成人性生交大片免费看中文| 国产喷白浆一区二区三区| 国产传媒欧美日韩成人| 久久久久九九视频| 国产91精品一区二区麻豆亚洲| 久久尤物电影视频在线观看| 精品在线免费视频| 亚洲精品一区二区三区四区高清| 免费在线观看日韩欧美| 精品日韩av一区二区| 狠狠网亚洲精品| 久久精品亚洲麻豆av一区二区| 丁香亚洲综合激情啪啪综合| 国产精品沙发午睡系列990531| 成人晚上爱看视频| 中文字幕一区二区三区不卡| 色综合一区二区三区| 亚洲免费伊人电影| 欧美日韩国产一二三| 麻豆成人综合网| 久久久精品国产免费观看同学| 成人黄色小视频| 亚洲综合视频网| 91精品国产综合久久福利软件| 视频一区二区国产| 精品欧美一区二区三区精品久久| 国产精品中文字幕欧美| 中文字幕一区二区在线播放| 精品视频免费看| 老司机午夜精品99久久| 国产精品三级久久久久三级| 一本色道综合亚洲| 男人的天堂亚洲一区| 国产欧美精品一区aⅴ影院| 色菇凉天天综合网| 日韩高清电影一区| 久久久美女毛片| 91黄色免费版| 激情都市一区二区|