home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / code / system / callback / fquickt.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1995-02-27  |  5.5 KB  |  163 lines

  1. VERSION 2.00
  2. Begin Form frmQuickHelp 
  3.    BorderStyle     =   0  'None
  4.    ClientHeight    =   240
  5.    ClientLeft      =   2508
  6.    ClientTop       =   2964
  7.    ClientWidth     =   4764
  8.    FontBold        =   -1  'True
  9.    FontItalic      =   0   'False
  10.    FontName        =   "MS Sans Serif"
  11.    FontSize        =   9.6
  12.    FontStrikethru  =   0   'False
  13.    FontUnderline   =   0   'False
  14.    Height          =   660
  15.    Left            =   2460
  16.    LinkTopic       =   "Form2"
  17.    MaxButton       =   0   'False
  18.    MinButton       =   0   'False
  19.    ScaleHeight     =   20
  20.    ScaleMode       =   3  'Pixel
  21.    ScaleWidth      =   397
  22.    Top             =   2592
  23.    Visible         =   0   'False
  24.    Width           =   4860
  25.    Begin CBVBX CBVBX2 
  26.       CBType          =   0  'AbortProc
  27.       Left            =   0
  28.       Top             =   0
  29.    End
  30.    Begin CBVBX CBVBX3 
  31.       CBType          =   0  'AbortProc
  32.       Left            =   0
  33.       Top             =   0
  34.    End
  35.    Begin Timer Timer1 
  36.       Left            =   1380
  37.       Top             =   60
  38.    End
  39.    Begin CBVBX CBVBX1 
  40.       CBType          =   16  ' 16 - WndProc
  41.       Left            =   0
  42.       Top             =   0
  43.    End
  44.    Begin Label DisplayText 
  45.       AutoSize        =   -1  'True
  46.       BackColor       =   &H0000FFFF&
  47.       BorderStyle     =   1  'Fixed Single
  48.       FontBold        =   0   'False
  49.       FontItalic      =   0   'False
  50.       FontName        =   "MS Sans Serif"
  51.       FontSize        =   7.8
  52.       FontStrikethru  =   0   'False
  53.       FontUnderline   =   0   'False
  54.       Height          =   216
  55.       Left            =   -12
  56.       TabIndex        =   1
  57.       Top             =   0
  58.       Width           =   3984
  59.       WordWrap        =   -1  'True
  60.    End
  61.    Begin Label Text 
  62.       Alignment       =   2  'Center
  63.       AutoSize        =   -1  'True
  64.       BackColor       =   &H0000FFFF&
  65.       BorderStyle     =   1  'Fixed Single
  66.       Caption         =   "Label1"
  67.       FontBold        =   0   'False
  68.       FontItalic      =   0   'False
  69.       FontName        =   "MS Sans Serif"
  70.       FontSize        =   7.8
  71.       FontStrikethru  =   0   'False
  72.       FontUnderline   =   0   'False
  73.       Height          =   228
  74.       Left            =   240
  75.       TabIndex        =   0
  76.       Top             =   0
  77.       Visible         =   0   'False
  78.       Width           =   1872
  79.       WordWrap        =   -1  'True
  80.    End
  81. Option Explicit
  82. Sub CBVBX1_WndProc (hWnd As Integer, wmsg As Integer, wparam As Integer, lparam As Long, retval As Long)
  83.     If wmsg = WM_ERASEBKGND Then
  84.         retval = 0
  85.     End If
  86. End Sub
  87. Sub CBVBX2_HookProc (Code As Integer, wparam As Integer, lparam As Long, retval As Long)
  88.   retval = CallNextHookEx(CBVBX2.hHook, Code, wparam, lparam)
  89.   CBVBX2.SystemHook = -2
  90.   CBVBX3.SystemHook = -2
  91.   GlobalControlRect.Left = 0
  92.   GlobalControlRect.Right = 0
  93.   GlobalControlRect.Top = 0
  94.   GlobalControlRect.Bottom = 0
  95.   frmQuickHelp.Visible = False
  96. End Sub
  97. Sub CBVBX3_HookProc (Code As Integer, wparam As Integer, lparam As Long, retval As Long)
  98.   Dim mhs As MOUSEHOOKSTRUCT
  99.   If wparam = WM_MOUSEMOVE Then
  100.     TypeAtAdress mhs, ByVal lparam, Len(mhs)
  101.     If mhs.x < GlobalControlRect.Left Or mhs.x >= GlobalControlRect.Right Or mhs.y < GlobalControlRect.Top Or mhs.y >= GlobalControlRect.Bottom Then
  102.       frmQuickHelp.Timer1.Interval = 0
  103.       GlobalControlRect.Left = 0
  104.       GlobalControlRect.Right = 0
  105.       GlobalControlRect.Top = 0
  106.       GlobalControlRect.Bottom = 0
  107.       frmQuickHelp.Visible = False
  108.       retval = CallNextHookEx(CBVBX3.hHook, Code, wparam, lparam)
  109.       CBVBX2.SystemHook = -2
  110.       CBVBX3.SystemHook = -2
  111.       Exit Sub
  112.     End If
  113.   Else
  114.     Select Case wparam:
  115.       Case WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_MBUTTONDBLCLK, WM_RBUTTONDOWN, WM_RBUTTONUP, WM_RBUTTONDBLCLK:
  116.         frmQuickHelp.Timer1.Interval = 0
  117.         GlobalControlRect.Left = 0
  118.         GlobalControlRect.Right = 0
  119.         GlobalControlRect.Top = 0
  120.         GlobalControlRect.Bottom = 0
  121.         frmQuickHelp.Visible = False
  122.         retval = CallNextHookEx(CBVBX3.hHook, Code, wparam, lparam)
  123.         CBVBX2.SystemHook = -2
  124.         CBVBX3.SystemHook = -2
  125.         Exit Sub
  126.     End Select
  127.   End If
  128.   retval = CallNextHookEx(CBVBX3.hHook, Code, wparam, lparam)
  129. End Sub
  130. Sub Form_Load ()
  131.   CBVBX1.MsgProcess(WM_ERASEBKGND) = MSG_EAT
  132.   CBVBX1.SubclassWnd = Me.hWnd
  133. End Sub
  134. Sub Timer1_Timer ()
  135.     Dim dummy
  136.     Dim p As PointAPI
  137.     If Timer1.Interval <> 0 Then
  138.       Timer1.Interval = 0
  139.       If Not IsNull(Text) Then
  140.         If Len(Text) Then
  141.           If HasFocus(win) Then
  142.             DisplayText = Text
  143.             DisplayText.Left = 0
  144.             DisplayText.Top = 0
  145.             Text = ""
  146.             UpdateWindow Me.hWnd
  147.             If Not Me.Visible Then
  148.               GetCursorPos p
  149.               If p.x >= GlobalControlRect.Left And p.x < GlobalControlRect.Right And p.y >= GlobalControlRect.Top And p.y < GlobalControlRect.Bottom Then
  150.                 Me.Left = p.x * Screen.TwipsPerPixelX
  151.                 Me.Top = (p.y + 17) * Screen.TwipsPerPixelX
  152.                 SetWindowPos Me.hWnd, HWND_TOPMOST, p.x, p.y, 0, 0, SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE
  153.                 
  154.                 CBVBX2.SystemHook = WH_KEYBOARD
  155.                 CBVBX3.SystemHook = WH_MOUSE
  156.               End If
  157.             End If
  158.           End If
  159.         End If
  160.       End If
  161.     End If
  162. End Sub
  163.