下面是AE提供的可以转化Font和Image分别为IFontDisp和IPictureDisp的函数,和我自己写的将IFontDisp和IPictureDisp转化为Font和Image的函数。
ESRI.ArcGIS.ADF.COMSupport.OLE.GetIFontDispFromFont
ESRI.ArcGIS.ADF.COMSupport.OLE.GetIPictureDispFromBitmap
ESRI.ArcGIS.ADF.COMSupport.OLE.GetIPictureDispFromIcon
''' <summary>
''' 从IFontDisp转换到System.Drawing.Font
''' </summary>
''' <param name="pFontDisp">传入IFontDisp</param>
''' <returns>返回Font</returns>
''' <remarks></remarks>
Shared Function GetFontFromIFontDisp(ByVal pFontDisp As stdole.IFontDisp) As System.Drawing.Font
Dim pName As String
Dim pSize As Single
Dim pFontStyle As System.Drawing.FontStyle
Dim pFont As System.Drawing.Font
pName = pFontDisp.Name
pSize = pFontDisp.Size
If pFontDisp.Bold = True Then
pFontStyle = pFontStyle + System.Drawing.FontStyle.Bold
End If
If pFontDisp.Italic = True Then
pFontStyle = pFontStyle + System.Drawing.FontStyle.Italic
End If
If pFontDisp.Strikethrough = True Then
pFontStyle = pFontStyle + System.Drawing.FontStyle.Strikeout
End If
If pFontDisp.Underline = True Then
pFontStyle = pFontStyle + System.Drawing.FontStyle.Underline
End If
pFont = New System.Drawing.Font(pName, pSize, pFontStyle)
Return pFont
End Function
''' <summary>
''' 从IPictureDisp转换到System.Drawing.Image
''' </summary>
''' <param name="pPictureDisp">传入的IPictureDisp</param>
''' <returns>返回Image</returns>
''' <remarks></remarks>
Shared Function GetImageFormIPictureDisp(ByVal pPictureDisp As stdole.IPictureDisp) As System.Drawing.Image
Return System.Drawing.Image.FromHbitmap(New System.IntPtr(pPictureDisp.Handle))
End Function
原文出处:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9093
ESRI.ArcGIS.ADF.COMSupport.OLE.GetIFontDispFromFont
ESRI.ArcGIS.ADF.COMSupport.OLE.GetIPictureDispFromBitmap
ESRI.ArcGIS.ADF.COMSupport.OLE.GetIPictureDispFromIcon
''' <summary>
''' 从IFontDisp转换到System.Drawing.Font
''' </summary>
''' <param name="pFontDisp">传入IFontDisp</param>
''' <returns>返回Font</returns>
''' <remarks></remarks>
Shared Function GetFontFromIFontDisp(ByVal pFontDisp As stdole.IFontDisp) As System.Drawing.Font
Dim pName As String
Dim pSize As Single
Dim pFontStyle As System.Drawing.FontStyle
Dim pFont As System.Drawing.Font
pName = pFontDisp.Name
pSize = pFontDisp.Size
If pFontDisp.Bold = True Then
pFontStyle = pFontStyle + System.Drawing.FontStyle.Bold
End If
If pFontDisp.Italic = True Then
pFontStyle = pFontStyle + System.Drawing.FontStyle.Italic
End If
If pFontDisp.Strikethrough = True Then
pFontStyle = pFontStyle + System.Drawing.FontStyle.Strikeout
End If
If pFontDisp.Underline = True Then
pFontStyle = pFontStyle + System.Drawing.FontStyle.Underline
End If
pFont = New System.Drawing.Font(pName, pSize, pFontStyle)
Return pFont
End Function
''' <summary>
''' 从IPictureDisp转换到System.Drawing.Image
''' </summary>
''' <param name="pPictureDisp">传入的IPictureDisp</param>
''' <returns>返回Image</returns>
''' <remarks></remarks>
Shared Function GetImageFormIPictureDisp(ByVal pPictureDisp As stdole.IPictureDisp) As System.Drawing.Image
Return System.Drawing.Image.FromHbitmap(New System.IntPtr(pPictureDisp.Handle))
End Function
原文出处:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9093