home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / GIF_ANIMAT1854532182005.psc / Anim.ctl < prev    next >
Text File  |  2005-02-18  |  7KB  |  236 lines

  1. VERSION 5.00
  2. Object = "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}#1.1#0"; "shdocvw.dll"
  3. Begin VB.UserControl Anim 
  4.    AutoRedraw      =   -1  'True
  5.    BorderStyle     =   1  'Fixed Single
  6.    ClientHeight    =   1680
  7.    ClientLeft      =   0
  8.    ClientTop       =   0
  9.    ClientWidth     =   1680
  10.    ScaleHeight     =   1680
  11.    ScaleWidth      =   1680
  12.    Begin SHDocVwCtl.WebBrowser WB1 
  13.       Height          =   1320
  14.       Left            =   135
  15.       TabIndex        =   0
  16.       TabStop         =   0   'False
  17.       Top             =   90
  18.       Width           =   1320
  19.       ExtentX         =   2328
  20.       ExtentY         =   2328
  21.       ViewMode        =   0
  22.       Offline         =   0
  23.       Silent          =   0
  24.       RegisterAsBrowser=   0
  25.       RegisterAsDropTarget=   0
  26.       AutoArrange     =   0   'False
  27.       NoClientEdge    =   0   'False
  28.       AlignLeft       =   0   'False
  29.       NoWebView       =   0   'False
  30.       HideFileNames   =   0   'False
  31.       SingleClick     =   0   'False
  32.       SingleSelection =   0   'False
  33.       NoFolders       =   0   'False
  34.       Transparent     =   0   'False
  35.       ViewID          =   "{0057D0E0-3573-11CF-AE69-08002B2E1262}"
  36.       Location        =   ""
  37.    End
  38. End
  39. Attribute VB_Name = "Anim"
  40. Attribute VB_GlobalNameSpace = False
  41. Attribute VB_Creatable = True
  42. Attribute VB_PredeclaredId = False
  43. Attribute VB_Exposed = False
  44. Option Explicit
  45.  
  46.  
  47. Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  48. Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
  49. Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
  50. Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
  51. Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
  52.  
  53. Enum enBorder
  54.    None = 0
  55.    Show = 1
  56. End Enum
  57.  
  58. Dim m_thisHwnd As Long 'read only
  59. Dim m_thisDC As Long 'read only
  60. Dim twipWid As Long, twipHei As Long
  61.  
  62. 'Default Property Values:
  63. Const m_def_offsetX = 0
  64. Const m_def_offsetY = 0
  65. Const m_def_AnimatedGifPath = ""
  66.  
  67. 'Property Variables:
  68. Dim m_offsetX As Long
  69. Dim m_offsetY As Long
  70. Dim m_AnimatedGifPath As String
  71.  
  72.  
  73. Private Sub UserControl_Resize()
  74.  
  75.  WB1.Move (m_offsetX - 50), _
  76.           (m_offsetY - 50), _
  77.           (Width - m_offsetX) + 150, _
  78.           (Height - m_offsetY) + 150
  79.   
  80.  Call PrintHtmlToDoc
  81.  
  82. End Sub
  83.  
  84. '   C:\Documents and Settings\evan.ASTROBRI-47XH2C\Desktop\test.gif
  85. Private Sub UserControl_Show()
  86.  '
  87.  ' get the webbrowsers hwnd and hdc
  88.  Call GetWebHwnd
  89.  ' cause the document_complete event to fire
  90.  WB1.Navigate "about:blank"
  91.  
  92. End Sub
  93.  
  94. Private Function navImg() As String
  95.   '
  96.   'this functions sizes the gif image
  97.   'based upon the width and height of the usercontrol
  98.   '
  99.   Dim pixwid As Long, pixhei As Long
  100.   pixwid = (Width / Screen.TwipsPerPixelX) - _
  101.            (offsetX / Screen.TwipsPerPixelX) + 5
  102.   pixhei = (Height / Screen.TwipsPerPixelY) - _
  103.            (offsetY / Screen.TwipsPerPixelY) + 5
  104.   
  105.   navImg = _
  106.   "<img border='0' hspace='0' vspace='0' " & _
  107.   "width='" & pixwid & _
  108.   "' height='" & pixhei & "' " & _
  109.   "src='" & m_AnimatedGifPath & "'></body>"
  110.  
  111. End Function
  112. Private Function NavGifHtml() As String
  113.   '
  114.   'create the body tag string which prevents
  115.   'this control from looking or acting like a browser
  116.   '
  117.   NavGifHtml = _
  118.     "<body scroll='no' oncontextmenu='return false' " & _
  119.     "leftmargin='0' rightmargin='0' topmargin='0' " & _
  120.     "bottom='0' marginwidth='0' marginheight='0'>"
  121.   
  122. End Function
  123. Private Sub WB1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  124.  
  125.    Call PrintHtmlToDoc
  126.    
  127. End Sub
  128. Private Sub PrintHtmlToDoc()
  129.    
  130.    On Error Resume Next
  131.    Dim wid As Long, hei As Long, rgn As Long
  132.    DoEvents
  133.    WB1.Document.Clear
  134.    WB1.Document.write ""
  135.    WB1.Refresh
  136.    WB1.Document.write NavGifHtml & navImg
  137.    '  in the document complete the browser is
  138.    '  programed to display a 3d border, but for our
  139.    '  purposes it detracts so let cut them out
  140.    wid = (WB1.Width / Screen.TwipsPerPixelX) - 6
  141.    hei = (WB1.Height / Screen.TwipsPerPixelY) - 6
  142.    rgn = CreateRectRgn(3, 3, wid, hei)
  143.    SetWindowRgn m_thisHwnd, rgn, True
  144.    
  145. End Sub
  146.  
  147. ' Find the child window with class name "Shell Embedding".
  148. Private Sub GetWebHwnd()
  149.   Const GW_CHILD As Long = 5
  150.   Const GW_HWNDNEXT As Long = 2
  151.   Dim child_hwnd As Long
  152.   Dim class_name As String * 256
  153.  
  154.   child_hwnd = GetWindow(hwnd, GW_CHILD)
  155.   Do
  156.       ' See if this is the target class.
  157.       GetClassName child_hwnd, class_name, 256
  158.       If Left$(class_name, Len("Shell Embedding")) = _
  159.           "Shell Embedding" Then
  160.           ' store the hwnd in member var
  161.           m_thisHwnd = child_hwnd
  162.           'lets get the hdc while we are at it
  163.           m_thisDC = GetWindowDC(m_thisHwnd)
  164.           Exit Do
  165.       End If
  166.  
  167.       ' Get the next child.
  168.       child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT)
  169.    Loop While child_hwnd <> 0
  170. End Sub
  171.  
  172.  
  173. 'AnimatedGifPath
  174. Public Property Get AnimatedGifPath() As String
  175.     AnimatedGifPath = m_AnimatedGifPath
  176. End Property
  177. Public Property Let AnimatedGifPath(ByVal New_AnimatedGifPath As String)
  178.     m_AnimatedGifPath = New_AnimatedGifPath
  179.     PropertyChanged "AnimatedGifPath"
  180.     Call UserControl_Resize
  181. End Property
  182. 'offsetX
  183. Public Property Get offsetX() As Long
  184.     offsetX = m_offsetX
  185. End Property
  186. Public Property Let offsetX(ByVal New_offsetX As Long)
  187.     m_offsetX = New_offsetX
  188.     PropertyChanged "offsetX"
  189.     Call UserControl_Resize
  190. End Property
  191. 'offsetY
  192. Public Property Get offsetY() As Long
  193.     offsetY = m_offsetY
  194. End Property
  195. Public Property Let offsetY(ByVal New_offsetY As Long)
  196.     m_offsetY = New_offsetY
  197.     PropertyChanged "offsetY"
  198.     Call UserControl_Resize
  199. End Property
  200. 'ShowBorder
  201. Public Property Get ShowBorder() As enBorder
  202.     ShowBorder = UserControl.BorderStyle
  203. End Property
  204. Public Property Let ShowBorder(ByVal New_ShowBorder As enBorder)
  205.     UserControl.BorderStyle() = New_ShowBorder
  206.     PropertyChanged "ShowBorder"
  207. End Property
  208.  
  209. 'Initialize Properties for User Control
  210. Private Sub UserControl_InitProperties()
  211.     m_AnimatedGifPath = m_def_AnimatedGifPath
  212.     m_offsetX = m_def_offsetX
  213.     m_offsetY = m_def_offsetY
  214. End Sub
  215. 'Load property values from storage
  216. Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  217.     m_AnimatedGifPath = PropBag.ReadProperty("AnimatedGifPath", m_def_AnimatedGifPath)
  218.     m_offsetX = PropBag.ReadProperty("offsetX", m_def_offsetX)
  219.     m_offsetY = PropBag.ReadProperty("offsetY", m_def_offsetY)
  220.     Call UserControl_Resize
  221.     UserControl.BorderStyle = PropBag.ReadProperty("ShowBorder", 1)
  222. End Sub
  223. 'Write property values to storage
  224. Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  225.     Call PropBag.WriteProperty("AnimatedGifPath", m_AnimatedGifPath, m_def_AnimatedGifPath)
  226.     Call PropBag.WriteProperty("offsetX", m_offsetX, m_def_offsetX)
  227.     Call PropBag.WriteProperty("offsetY", m_offsetY, m_def_offsetY)
  228.     Call PropBag.WriteProperty("ShowBorder", UserControl.BorderStyle, 1)
  229. End Sub
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.