zoukankan      html  css  js  c++  java
  • MO自定义符号之二(将点显示为水池符号)

    前面已经讲过VC下的自定义符号方法了,这里再讲一个VB下自定义符号的应用实例,那就是将点显示为一个水池,如下图所示

    罗嗦的话就不说了,直接贴代码:

    Option Explicit

    Implements AFCustom.ICustomMarker

    ' data members
    Private m_pen As Long
    Private m_oldPen As Long
    Private m_size As Long
    Private m_Style As WsNodeStyle

    ' win32 api functions
    Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
    Private Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

    Private Declare Function LineTo Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long) As Long
    Private Declare Function MoveToEx Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, lpPoint As Long) As Long
    Private Declare Function Ellipse Lib "gdi32" (ByVal hDC As Long, ByVal x1 As Long, ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long) As Long

    Private Sub Class_Initialize()
      m_Style = WsWaterTankNode
    End Sub

    Public Property Let SymbolStyle(ByVal vData As WsNodeStyle)
        m_Style = vData
    End Property

    Public Property Get SymbolStyle() As WsNodeStyle
        SymbolStyle = m_Style
    End Property

    Public Sub ICustomMarker_Draw(ByVal hDC As Long, ByVal x As Long, ByVal y As Long)
      Select Case m_Style
      Case WsWaterTankNode '水池
        MoveToEx hDC, x - m_size, y - m_size, 0
        LineTo hDC, x - m_size, y
        LineTo hDC, x + m_size, y
        LineTo hDC, x + m_size, y - m_size
        MoveToEx hDC, x - m_size, Int(y - m_size * 2 / 5), 0
        LineTo hDC, x + m_size, Int(y - m_size * 2 / 5)
      Case Else
        Ellipse hDC, x - m_size, y - m_size, x + m_size, y + m_size
      End Select
    End Sub

    Public Sub ICustomMarker_ResetDC(ByVal hDC As Long)
      SelectObject hDC, m_oldPen
      DeleteObject m_pen
    End Sub

    Public Sub ICustomMarker_SetupDC(ByVal hDC As Long, ByVal dpi As Double, ByVal pBaseSym As Object)
      m_pen = CreatePen(0, 1, pBaseSym.Color)
      m_oldPen = SelectObject(hDC, m_pen)
      m_size = pBaseSym.Size
    End Sub

  • 相关阅读:
    后台查询出来的list结果 在后台查询字典表切换 某些字段的内容
    easyui字典js 切换 jsp页面显示的内容
    easyui获取table列表中所有数据组装成json格式发送到后台
    java日常工作错误总结
    easyui模板页面 不良调查
    配置简单的拦截器java中
    读取pdf中的内容
    springMVC生成pdf文件
    C++之友元函数和友元类
    ROS初级教程 cmake cmakelist.txt 的编写教程
  • 原文地址:https://www.cnblogs.com/bgming/p/250971.html
Copyright © 2011-2022 走看看