FrmMain.frm
上传用户:xxscled
上传日期:2022-05-30
资源大小:108k
文件大小:9k
源码类别:

其他智力游戏

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form FrmMain 
  3.    BackColor       =   &H00FFFFFF&
  4.    Caption         =   "大家来找碴 Alpha"
  5.    ClientHeight    =   7065
  6.    ClientLeft      =   120
  7.    ClientTop       =   450
  8.    ClientWidth     =   13545
  9.    LinkTopic       =   "Form1"
  10.    ScaleHeight     =   471
  11.    ScaleMode       =   3  'Pixel
  12.    ScaleWidth      =   903
  13.    StartUpPosition =   3  '窗口缺省
  14.    WindowState     =   2  'Maximized
  15.    Begin VB.Timer tmrClickCheck 
  16.       Enabled         =   0   'False
  17.       Interval        =   2000
  18.       Left            =   0
  19.       Top             =   0
  20.    End
  21.    Begin VB.HScrollBar HScroll 
  22.       Height          =   255
  23.       LargeChange     =   300
  24.       Left            =   600
  25.       SmallChange     =   200
  26.       TabIndex        =   3
  27.       TabStop         =   0   'False
  28.       Top             =   6480
  29.       Width           =   13575
  30.    End
  31.    Begin VB.PictureBox PicKid 
  32.       AutoSize        =   -1  'True
  33.       BorderStyle     =   0  'None
  34.       Height          =   3840
  35.       Left            =   4560
  36.       ScaleHeight     =   256
  37.       ScaleMode       =   3  'Pixel
  38.       ScaleWidth      =   289
  39.       TabIndex        =   2
  40.       Top             =   1080
  41.       Width           =   4335
  42.       Begin VB.Shape ShpCircle 
  43.          BorderColor     =   &H000000FF&
  44.          BorderWidth     =   5
  45.          Height          =   735
  46.          Index           =   0
  47.          Left            =   240
  48.          Shape           =   2  'Oval
  49.          Top             =   360
  50.          Visible         =   0   'False
  51.          Width           =   1215
  52.       End
  53.    End
  54.    Begin VB.PictureBox PicMain 
  55.       AutoSize        =   -1  'True
  56.       BorderStyle     =   0  'None
  57.       Height          =   3735
  58.       Left            =   0
  59.       ScaleHeight     =   249
  60.       ScaleMode       =   3  'Pixel
  61.       ScaleWidth      =   289
  62.       TabIndex        =   1
  63.       Top             =   1080
  64.       Width           =   4335
  65.    End
  66.    Begin VB.Label lblStatus 
  67.       BackColor       =   &H00FFFFFF&
  68.       Caption         =   "Status"
  69.       BeginProperty Font 
  70.          Name            =   "微软雅黑"
  71.          Size            =   14.25
  72.          Charset         =   134
  73.          Weight          =   400
  74.          Underline       =   0   'False
  75.          Italic          =   0   'False
  76.          Strikethrough   =   0   'False
  77.       EndProperty
  78.       ForeColor       =   &H00FF0000&
  79.       Height          =   855
  80.       Left            =   120
  81.       TabIndex        =   0
  82.       Top             =   120
  83.       Width           =   10335
  84.    End
  85. End
  86. Attribute VB_Name = "FrmMain"
  87. Attribute VB_GlobalNameSpace = False
  88. Attribute VB_Creatable = False
  89. Attribute VB_PredeclaredId = True
  90. Attribute VB_Exposed = False
  91. Option Explicit
  92. Const MaxCircle As Long = 50
  93. Const MaxPicNum As Long = 6
  94. Public IsClickEnabled As Boolean
  95. Public lngDiffFound As Long
  96. Public lngCurrentPicNum As Long
  97. Public IsExit As Boolean
  98. Public IsClicking As Boolean
  99. Private Function LoadPic(ByVal PicIndex As Long) As Long ' return value = how many differences are there in the pics
  100.     If PicIndex > MaxPicNum Then
  101.         ' Succeed
  102.         MsgBox "祝贺你们成功跨过本关!", vbInformation
  103.         On Error Resume Next
  104.         Kill App.Path & "g_diff.dat"
  105.         On Error GoTo 0
  106.         Open App.Path & "g_diff.dat" For Append As #1
  107.         Print #1, "finished"
  108.         Close #1
  109.         tmrClickCheck.Enabled = False
  110.         SetStat "成功跨过本关。软件即将关闭……"
  111.         DoEvents
  112.         Sleep 3000
  113.         LoadPic = -1
  114.         IsExit = True
  115.         Unload Me
  116.         End
  117.     End If
  118.     On Error GoTo ErrHandler
  119.     PicMain.Picture = LoadPicture(App.Path & "Data" & PicIndex & "_ori.jpg")
  120.     PicKid.Picture = LoadPicture(App.Path & "Data" & PicIndex & "_new.jpg")
  121.     ' Rearrange
  122.     PicKid.Left = PicMain.Left + PicMain.Width + 10
  123.     If PicMain.Width + PicKid.Width + 10 > FrmMain.Width Then
  124.         HScroll.Max = PicMain.Width + PicKid.Width + 10 - FrmMain.Width
  125.         HScroll.Enabled = True
  126.     Else
  127.         HScroll.Enabled = False
  128.     End If
  129.     ' Loading the info file
  130.     Open App.Path & "Data" & PicIndex & ".inf" For Input As #1
  131.     Dim x1 As Long, y1 As Long, x2 As Long, y2 As Long
  132.     Dim lp As Long
  133.     For lp = 1 To MaxCircle
  134.         ShpCircle(lp).Visible = False
  135.         ShpCircle(lp).Tag = ""
  136.     Next lp
  137.     lp = 0
  138.     Do Until EOF(1)
  139.         Input #1, x1, y1, x2, y2
  140.         lp = lp + 1
  141.         With ShpCircle(lp)
  142.             .Left = x1
  143.             .Top = y1
  144.             .Width = x2 - x1
  145.             .Height = y2 - y1
  146.         End With
  147.     Loop
  148.     Close #1
  149.     lngDiffFound = 0
  150.     IsClickEnabled = True
  151.     LoadPic = lp
  152.     Form_Resize
  153.     Exit Function
  154. ErrHandler:
  155.     If Err.Number = 53 Then
  156.         MsgBox "无法找到对应的图片或信息文件。请与本软件技术负责人联系。", vbCritical
  157.     Else
  158.         MsgBox "读取图片文件时发生错误 " & Err.Number & ", " & Err.Description & ", 请与本软件技术负责人联系。", vbCritical
  159.     End If
  160. End Function
  161. Private Sub Form_Load()
  162.     Dim ret As Long
  163.     Dim i As Long
  164.     For i = 1 To MaxCircle
  165.         Load ShpCircle(i)
  166.     Next i
  167.     lblStatus.Caption = "准备就绪"
  168.     HScroll.Enabled = False
  169.     lngCurrentPicNum = 1
  170.     PicKid.Tag = LoadPic(1)
  171.     '''''
  172.     ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
  173.     ret = ret Or WS_EX_LAYERED
  174.     SetWindowLong Me.hWnd, GWL_EXSTYLE, ret
  175.     Me.Show
  176.     For i = 0 To 255 Step 2
  177.         SetLayeredWindowAttributes Me.hWnd, 0, i, LWA_ALPHA
  178.         DoEvents
  179.         Sleep 1
  180.     Next i
  181. End Sub
  182. Private Sub Form_Resize()
  183.     If IsExit = True Then Exit Sub
  184.     HScroll.Top = FrmMain.ScaleHeight - HScroll.Height
  185.     HScroll.Width = FrmMain.ScaleWidth
  186.     HScroll.Left = 0
  187.     If PicMain.ScaleWidth + PicKid.ScaleWidth + 10 > FrmMain.ScaleWidth Then
  188.         HScroll.Max = PicMain.ScaleWidth + PicKid.ScaleWidth + 10 - FrmMain.ScaleWidth
  189.         HScroll.Enabled = True
  190.         HScroll_Change
  191.     Else
  192.         ' Center it
  193.         PicMain.Left = FrmMain.ScaleWidth / 2 - 5 - PicMain.ScaleWidth
  194.         PicKid.Left = FrmMain.ScaleWidth / 2 + 5
  195.         HScroll.Enabled = False
  196.     End If
  197. End Sub
  198. Private Sub Form_Unload(Cancel As Integer)
  199.     IsExit = True
  200.     Dim i As Long
  201.     For i = 255 To 0 Step -2
  202.         SetLayeredWindowAttributes Me.hWnd, 0, i, LWA_ALPHA
  203.         DoEvents
  204.         Sleep 1
  205.     Next i
  206. End Sub
  207. Private Sub HScroll_Change()
  208.     On Error Resume Next
  209.     ' Redraw the pics
  210.     PicMain.Left = -1 * HScroll.Value
  211.     PicKid.Left = PicMain.Left + PicMain.Width + 10
  212. End Sub
  213. Private Sub PicKid_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  214.     Dim i As Long
  215.     Do While IsClicking = True
  216.         DoEvents
  217.     Loop
  218.     IsClicking = True
  219.     If IsClickEnabled = True Then
  220.         IsClickEnabled = False
  221.         For i = 1 To CLng(PicKid.Tag)
  222.             With ShpCircle(i)
  223.                 If X > .Left And X < .Left + .Width And Y > .Top And Y < .Top + .Height And .Tag <> "x" Then
  224.                     ShpCircle(i).Visible = True
  225.                     .Tag = "x"
  226.                     lngDiffFound = lngDiffFound + 1
  227.                     IsClickEnabled = True
  228.                     SetStat ":)"
  229.                     If CLng(PicKid.Tag) - lngDiffFound = 0 Then
  230.                         ' Jump to the next pic
  231.                         lngCurrentPicNum = lngCurrentPicNum + 1
  232.                         SetStat "正在读取下一组图片..."
  233.                         DoEvents
  234.                         Sleep 1000
  235.                         PicKid.Tag = LoadPic(lngCurrentPicNum)
  236.                         If CLng(PicKid.Tag) <= 0 Then
  237.                             IsClickEnabled = False
  238.                             Exit Sub
  239.                         End If
  240.                         SetStat "准备就绪。"
  241.                     End If
  242.                     Exit For
  243.                 Else
  244.                     SetStat ":("
  245.                 End If
  246.             End With
  247.         Next i
  248.         tmrClickCheck.Enabled = True
  249.     Else
  250.         SetStat "点击过快!"
  251.     End If
  252.     IsClicking = False
  253. End Sub
  254. Private Sub PicMain_Click()
  255.     SetStat "左边是原图,右边才是要点击的!"
  256. End Sub
  257. Private Sub tmrClickCheck_Timer()
  258.     IsClickEnabled = True
  259.     SetStat "等待下一次点击..."
  260.     tmrClickCheck.Enabled = False
  261. End Sub
  262. Public Sub SetStat(ByVal strEvents As String)
  263.     Dim i As Long, r As Integer
  264.     lblStatus.Caption = "当前是第 " & lngCurrentPicNum & " 对图片。已找到 " & lngDiffFound & " 处不同,剩余 " & CLng(PicKid.Tag) - lngDiffFound & " 处。"
  265.     lblStatus.Caption = lblStatus.Caption & vbCrLf & Date & " " & Time & " " & strEvents
  266. End Sub