⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmavicapture.frm

📁 VB6.0编写的医院影像系统
💻 FRM
📖 第 1 页 / 共 3 页
字号:
      Height          =   240
      Left            =   0
      Picture         =   "frmAviCapture.frx":6576
      Top             =   735
      Visible         =   0   'False
      Width           =   240
   End
   Begin VB.Image imgHasSound 
      Height          =   240
      Left            =   30
      Picture         =   "frmAviCapture.frx":66C0
      Top             =   450
      Visible         =   0   'False
      Width           =   240
   End
   Begin VB.Image imgTrue 
      Height          =   240
      Left            =   15
      Picture         =   "frmAviCapture.frx":67C2
      Top             =   180
      Visible         =   0   'False
      Width           =   240
   End
End
Attribute VB_Name = "frmVideoCapture"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Public Loaded As Boolean

Private US_NO As String         '超声序号
Private CurrentID As Integer    '当前的文件
Private bInRecording As Boolean '正在录音中的标志,防止chkSound重复操作
Dim strVideo As String          '视频文件名
Dim Id As Integer               '图象文件的序号
Private VideoID As Integer      '视频文件的序号
Private lFrames As Long         '已捕捉的帧数

Private HasCapture As Boolean   '已经采集了图片的标志
Public bNormalExit As Boolean   '是否正常退出的指示


Public LoadExist As Boolean     '是否加载已经存在的当前报告

Public bChangingImage As Boolean    '正在切换的标志

Private Sub chkPrint_Click()
    
    Dim MaxPrint As Integer
    
    '检查是否大于最大允许的打印张数
    If chkPrint.Value = 1 And ibPic.TagPrintNumber >= MAX_PRINT_IMAGES And ibPic.SelectedImage.TagPrint = False Then
        MsgBox "最多只能打印 " & MAX_PRINT_IMAGES & " 幅图片!", vbOKOnly + vbInformation, "提示"
        chkPrint.Value = 0
        Exit Sub
    End If

    '--------------------------
    '切换ibPic中选择图片的打印属性
    '--------------------------

    ibPic.SelectedImage.TagPrint = (chkPrint.Value = vbChecked)
    ibPic.ShowImage
    ibPic_SelectChanged     '刷新各选项的显示
    
End Sub

Private Sub chkSave_Click()
    
    '--------------------------
    '切换ibPic中选择图片的保存属性
    '--------------------------
    
    ibPic.SelectedImage.TagSave = (chkSave.Value = vbChecked)
    ibPic.ShowImage
    ibPic_SelectChanged     '刷新各选项的显示
    
End Sub

Private Sub chkSlowScan_Click()
    
    '-------------------
    '设置慢速扫描
    '-------------------
    
    wvAvi.StillMode = chkSlowScan.Value
    
End Sub

Private Sub chkSound_Click()
    
    '--------------------------
    '切换ibPic中选择图片的保存属性
    '--------------------------
    
    If bChangingImage Then Exit Sub
    
    If Not bInRecording Then   '如果是在录音中引发的Click事件则自动弹出录音窗体(因已经弹出了)
    
        If chkSound.Value = vbChecked Then
            cmdImageSound_Click
            If frmSoundRecord.Cancel Then chkSound.Value = 0: Exit Sub
        End If
    End If
    
    ibPic.SelectedImage.TagSound = (chkSound.Value = vbChecked)
    ibPic.ShowImage
    ibPic_SelectChanged

End Sub

Private Sub cmdCancel_Click()
    
    '-----------------------
    '取消
    '-----------------------
    
    Unload Me
    
End Sub

Private Sub cmdFormat_Click()
    
    wvAvi.ShowSourceDialog
    
    Me.wvVidX.SetZoom 50
    
End Sub

Private Sub cmdDeleteVideo_Click()
    
    '----------------------------------
    '删除当前的视频
    '----------------------------------
    If Not (lvwVideo.SelectedItem Is Nothing) Then
        lvwVideo.ListItems.Remove lvwVideo.SelectedItem.Index
    End If
    
End Sub

Private Sub cmdImageSound_Click()
    
    '-------------
    '录音
    '-------------
    
    bInRecording = True
    
    With frmSoundRecord
        .FileName = ImageFileToSoundFile(ibPic.SelectedImage.FileFullName)
        If FSO.FileExists(.FileName) Then Kill .FileName
        .Show vbModal
        '如果有录音,则加入,如果没有录音,则清空
        If FSO.FileExists(.FileName) And .Cancel = False Then
            ibPic.SelectedImage.TagSound = True
            ibPic.SelectedImage.SoundFile = .FileName
            ibPic_SelectChanged
            ibPic.ShowImage
        Else
        
        End If
    End With
    
    '释放对象
    bInRecording = False
    
End Sub

Private Sub cmdOK_Click()
    
    '---------
    '确定
    '---------
    Dim cIF As ImageFile
    Dim IFTemp As ImageFile
    Dim itmX As ListItem
    
    '如果与报告联合,则将图象信息写到frmReport窗体
    If US_NO <> vbNullString Then
        With frmReport
            '保存视频集合VFs
            If chkSaveVideo.Value = 1 Then
                For Each itmX In lvwVideo.ListItems
                    Set IFTemp = .VFs.Add(itmX.Tag)
                    IFTemp.Frames = itmX.SubItems(2)
                    If USV.AllowAudio Then IFTemp.SoundFile = itmX.ListSubItems(3).Tag
                Next itmX
            End If
            
            '先清除原先的IF集合
            Set .IFs = New ImageFiles
            For Each cIF In ibPic.ImageFiles
                If Me.ibPic.ShowAttachInfo Then
                    If cIF.TagSave Then
                        Set IFTemp = .IFs.Add(cIF.FileFullName)
                        IFTemp.TagSound = cIF.TagSound
                        IFTemp.TagSave = cIF.TagSave
                        IFTemp.TagPrint = cIF.TagPrint
                        If USV.AllowAudio Then IFTemp.SoundFile = cIF.SoundFile
                    End If
                Else
                    .IFs.Add cIF.FileFullName
                End If
            Next cIF
        End With
    End If

    '释放对象
    Set cIF = Nothing
    Set IFTemp = Nothing
    
    bNormalExit = True
    Unload Me
    
End Sub

Private Sub cmdPlay_Click()
    
    '---------
    '回放视频
    '---------
    
    If cmdPlay.Visible = False Or cmdPlay.Enabled = False Then Exit Sub
    
    wvAvi.Enabled = False
    
    '检查是否有选中的条目
    If lvwVideo.SelectedItem Is Nothing Then
        Exit Sub
    End If
    
    '播放视频
    Screen.MousePointer = vbHourglass
    frmVideoView.FileName = lvwVideo.SelectedItem.Tag
    frmVideoView.Show vbModal
    
    wvAvi.Enabled = True
    wvAvi.Startup
    
End Sub

Private Sub cmdPlayVideoSound_Click()
    
        
    '-------------------------------
    '播放选择项目的声音
    '-------------------------------
            
    Dim strFile As String
        
    With lvwVideo
        If .SelectedItem Is Nothing Then
            Exit Sub
        End If
        
        strFile = .SelectedItem.ListSubItems(3).Tag
        '如果该文件存在,则先删除
        If FSO.FileExists(strFile) Then
            PlaySound strFile
        End If
        
    End With

End Sub

Private Sub cmdSaveAs_Click()
    
    '--------------
    '当前图片另存为
    '--------------
    ibPic.SaveAs
    
End Sub

Private Sub cmdStartCapture_Click()

    If cmdStartCapture.Visible = False Or cmdStartCapture.Enabled = False Then Exit Sub
    
    NullCheck
    
    '-------------
    '开始捕捉图像
    '-------------
    
    '初始化视频序列号
    wvAvi.VideoFileName = GetFreeAviFileName
    
    lFrames = 0
    
    Me.StartCapture
    
    cmdStartCapture.Enabled = False
    cmdStopCapture.Enabled = True
    cmdStillImage.Enabled = False
    cmdPlay.Enabled = False
    cmdVideoProp.Enabled = False
    
End Sub

Private Sub cmdStillImage_Click()

    If cmdStillImage.Visible = False Or cmdStillImage.Enabled = False Then Exit Sub
    
    CheckDog
    
    '--------------
    '静态图片
    '--------------
    StillCapture (chkCopyFrame.Value = 1)
    
End Sub

Private Sub cmdStopCapture_Click()

    If cmdStopCapture.Visible = False Or cmdStopCapture.Enabled = False Then Exit Sub
    
    '-----------------------
    '停止捕捉,设置一些属性
    '-----------------------
    
    Screen.MousePointer = vbHourglass
    
    Me.StopCapture
    lblInfo.Caption = vbNullString
    
    chkSaveVideo.Enabled = True
    chkSaveVideo.Value = 1
    chkSaveVideo.Tag = "HasVideo"
    
    cmdStopCapture.Enabled = False
    cmdStartCapture.Enabled = True
    cmdStillImage.Enabled = True
    cmdPlay.Enabled = True
    cmdVideoProp.Enabled = True

    cmdVideoSound.Enabled = True
    
    '捕捉并恢复鼠标
    VideoCapture
    Screen.MousePointer = vbNormal
    
End Sub


Private Sub cmdVideoProp_Click()

    If cmdVideoProp.Visible = False Or cmdVideoProp.Enabled = False Then Exit Sub
    
    '-----------------
    '显示属性窗体
    '-----------------
    
    If frmReport.Loaded Then
        frmVideoProp.Show vbModal
    Else
        frmVideoProp.Show , frmMain
    End If
End Sub

Private Sub cmdVideoSound_Click()
    
    '------------------
    '保存对视频的配音
    '------------------
    
    Dim strFile
    On Error Resume Next
    
    
    With lvwVideo
        If .SelectedItem Is Nothing Then
            Exit Sub
        End If
        
        strFile = Left(.SelectedItem.Tag, Len(.SelectedItem.Tag) - 4) & "X.WAV"
        
        '如果该文件存在,则先删除
        If FSO.FileExists(strFile) Then Kill strFile
        With frmSoundRecord
            .FileName = strFile
            .Show vbModal
        End With
        '如果该文件存在并且不是取消,则记录
        If FSO.FileExists(strFile) And frmSoundRecord.Cancel = False Then
            .SelectedItem.ListSubItems(3).ReportIcon = "Sound"
            .SelectedItem.ListSubItems(3).Tag = strFile
        Else
            .SelectedItem.ListSubItems(3).ReportIcon = 0
            .SelectedItem.ListSubItems(3).Tag = vbNullString
        End If
        
    End With
    
    
    '释放对象
    
    
End Sub



Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    
    '---------------
    '处理键盘事件
    '---------------
    
    Select Case KeyCode
        Case vbKeyF2
            cmdStartCapture_Click
        Case vbKeyF3
            cmdStopCapture_Click
        Case vbKeyF4
            cmdStillImage_Click
        Case vbKeyF5
            cmdPlay_Click
        Case vbKeyF6
            cmdVideoProp_Click
        Case vbKeyEscape
            Unload Me
    End Select
    
End Sub

Private Sub Form_Load()
    
    '-------------------
    '窗体加载
    '-------------------
    
    '根据版本判断是否应该加载窗体
    If USV.AllowCapture = False Then
        Unload Me
        Exit Sub
    End If
    
    NullCheck

    Dim cIF As ImageFile
    Dim IFTemp As ImageFile
    Dim itmX As ListItem
    
    '根据版本判断是否应该显示功能
    If USV.AllowAudio = False Then
        Me.cmdVideoSound.Visible = False
        Me.cmdPlayVideoSound.Visible = False
        Me.chkSound.Visible = False
        Me.lblSound.Visible = False
        Me.cmdImageSound.Visible = False
        lvwVideo.ColumnHeaders.Remove (4)
    End If
    
    '如果不能保存视频,则应该不显示视频属性
    If USV.AllowSaveVideo = False Then
        Dim Delta
        Frame1.Visible = False
        lvwVideo.Visible = False
        Delta = Frame2.Top - Frame1.Top
        Frame2.Top = Frame2.Top - Delta

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -