home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 4_2005-2006.ISO / data / Zips / IOX_Contai190937752005.psc / Container.ctl < prev   
Text File  |  2005-07-05  |  4KB  |  143 lines

  1. VERSION 5.00
  2. Begin VB.UserControl IoxContainer 
  3.    Alignable       =   -1  'True
  4.    BorderStyle     =   1  'Fixed Single
  5.    ClientHeight    =   1740
  6.    ClientLeft      =   0
  7.    ClientTop       =   0
  8.    ClientWidth     =   1740
  9.    ControlContainer=   -1  'True
  10.    HasDC           =   0   'False
  11.    ScaleHeight     =   1740
  12.    ScaleWidth      =   1740
  13.    ToolboxBitmap   =   "Container.ctx":0000
  14.    Begin VB.Timer FocusTimer 
  15.       Interval        =   50
  16.       Left            =   0
  17.       Top             =   0
  18.    End
  19.    Begin VB.PictureBox Scrollpic 
  20.       BorderStyle     =   0  'None
  21.       Height          =   240
  22.       Left            =   1500
  23.       ScaleHeight     =   240
  24.       ScaleWidth      =   240
  25.       TabIndex        =   2
  26.       TabStop         =   0   'False
  27.       Top             =   1500
  28.       Width           =   240
  29.    End
  30.    Begin VB.HScrollBar HScroll 
  31.       Height          =   240
  32.       Left            =   0
  33.       Max             =   10
  34.       TabIndex        =   1
  35.       TabStop         =   0   'False
  36.       Top             =   1500
  37.       Width           =   1500
  38.    End
  39.    Begin VB.VScrollBar VScroll 
  40.       Height          =   1500
  41.       Left            =   1500
  42.       Max             =   10
  43.       TabIndex        =   0
  44.       TabStop         =   0   'False
  45.       Top             =   0
  46.       Width           =   240
  47.    End
  48. End
  49. Attribute VB_Name = "IoxContainer"
  50. Attribute VB_GlobalNameSpace = False
  51. Attribute VB_Creatable = True
  52. Attribute VB_PredeclaredId = False
  53. Attribute VB_Exposed = False
  54. Option Explicit
  55. '//////////////////////////////  IOX Container  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  56. 'This is the most advanced container control in PSC.
  57. 'Did you love controls that don't have much "client-side" code...
  58.  
  59. 'Ok, this is a 0 line client-side code control, It┤s a REAL container,
  60. 'You just put controls inside and the contros do the dirty job.
  61. 'Allows to put many controls in the panel, an use scrollbars to acces them
  62. 'This panel suport Mouse Wheel, WITHOUT SUBCLASS, just uses the free time
  63. 'to Peek Messages, so its IDE safe.
  64. 'It has a lot of features, like:
  65. 'Use ScrollBarConstants (vbBoth, vbVertical, vbSBNone, vbHorizontal)
  66. 'Use ScrollBar sensibility
  67. 'Vertical and horizontal margin to ajust the contained controls
  68. 'Change the potion of the scrolls when a contained controls got focus
  69. 'Is aligneable
  70.  
  71. 'I got the idea from IsPanel, By DavidJ, but this is a complete rewrite, so
  72. 'it uses diferent and more eficient programing techniques.
  73.  
  74.  
  75. ' Created by Ivan Tellez
  76. '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\  IOX Container  //////////////////////////////
  77.  
  78.  
  79.  
  80. ' API Declarations
  81. ' ==================================
  82. Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
  83. Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
  84. Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
  85. Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As msg, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
  86. Private Declare Function WaitMessage Lib "user32" () As Long
  87.  
  88.  
  89.  
  90. ' API Constants
  91. ' ==================================
  92. Private Const PM_REMOVE = &H1
  93.  
  94. Private Type POINTAPI
  95.         x As Long
  96.         Y As Long
  97. End Type
  98.  
  99. Private Type msg
  100.     hwnd As Long
  101.     Message As Long
  102.     wParam As Long
  103.     lParam As Long
  104.     time As Long
  105.     pt As POINTAPI
  106. End Type
  107.  
  108. Private bCancel As Boolean
  109. Private Const WM_MOUSEWHEEL = 522
  110.  
  111.  
  112. Private Const SM_CYVSCROLL = 20
  113.  
  114. Private Type CurrentControlType
  115.         Name As String
  116.         Index As Long
  117. End Type
  118.  
  119. Private Type RECT
  120.         Left As Long
  121.         Top As Long
  122.         Right As Long
  123.         Bottom As Long
  124. End Type
  125.  
  126.  
  127.  
  128.  
  129. ' Control properties
  130. ' ==================================
  131. Public Enum BorderStyleEnum
  132.     [None]
  133.     [Fixed Single]
  134. End Enum
  135.  
  136. Public Enum ScrollBehaviorEnum
  137.     [Normal]
  138.     [Middle]
  139.     [Reverse]
  140. End Enum
  141.  
  142. Public Enum SensibilityEnum
  143.     [H