当前窗口上有一个imgstate,其中的图片表示播放器的状态,有四种状态为播放按钮时:正常状态(play.gif),鼠标放上(play-a.gif),鼠标按下(play-p.gif),不可用(play-d.gif)为暂停按钮时:正常状态(pause.gif),鼠标放上(pause-a.gif),鼠标按下(pause-p.gif),不可用(pause-d.gif)括号中的为当前目录下的gif文件现在的要求是:程序打开时,为暂停按钮正常状态,鼠标在图片上移动时为暂停鼠标放上状态,按下时为鼠标按下状态,鼠标释放时,lblstate.Caption = "暂停",并把imgstate中的图片换成播放按钮,具体状态同上,此时单击此按钮并鼠标释放鼠标时,lblstate.Caption = "播放",以此类推!另外在程序中检测变量uselessplay和uselesspause的值,如果uselessplay=true,则播放按钮为不可用,并且不响应鼠标事件;如果uselesspause=true,则暂停按钮为不可用,并且不响应鼠标事件,内容有点多,希望高手多多指点,小弟在此谢过,只有100分,全部给了,回复的朋友,下次我一定多给分,谢谢了!

解决方案 »

  1.   

    ...逻辑判断 + enabled属性
    没说什么问题??? 
      

  2.   

    将8个图片放在一个 2x4 的 2 维数组中,再用两个变量作为数组下标,分别表示 {播放/暂停}、{正常/放上/按下/不可用}。
    鼠标点击事件更改第一个变量,鼠标移动和uselessplay和uselesspause变化时更改第二个变量。
    按照下标显示图片。
      

  3.   

    图片切换事件
    imgstate_Mousemove'鼠标放上
    imgstate_MouseDown'鼠标按下
    imgstate_Mouseup'鼠标放开
    在 Form_MouseMove   事件中把图片设为正常状态在判断imgstate 的enabled属性 当enabled为false 时 为不可用图片
      

  4.   

    楼主参考这个代码:
    Option ExplicitPrivate picImgs(7) As StdPicture
    Private useLessplay As Boolean, useLesspause As Boolean
    Private lPlaySta As LongPrivate Sub Form_Load()    useLessplay = True
        useLesspause = False
        Dim i&
    'picImgs() 0 ~ 3 是 播放状态图片
    'picImgs() 4 ~ 7 是 暂停状态图片
    '图片顺序是 正常、鼠标移上、鼠标按下、禁用
    '楼主的图片名称,要用8条语句加载图片
        For i = 0 To 7
            Set picImgs(i) = LoadPicture("X:\Temp\p0" & i + 1 & ".jpg")
        Next
        lPlaySta = 4: Image1.Picture = picImgs(lPlaySta)End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)    If (lPlaySta = 0) Then
            Image1.Picture = picImgs(CLng(useLessplay) And 3)
        Else
            Image1.Picture = picImgs(lPlaySta Or CLng(useLesspause) And 3)
        End IfEnd SubPrivate Sub Image1_Click()
        
        If (lPlaySta = 0) Then
            If (useLessplay) Then Exit Sub
        Else
            If (useLesspause) Then Exit Sub
        End If
        lPlaySta = lPlaySta Xor 4
        If (lPlaySta = 4) Then
            Image1.Picture = picImgs(lPlaySta Or CLng(useLesspause) And 3)
        Else
            Image1.Picture = picImgs(lPlaySta Or CLng(useLessplay) And 3)
        End IfEnd SubPrivate Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)    If (Button <> 1) Then Exit Sub
        If (lPlaySta = 0) Then
            If (useLessplay) Then Exit Sub
        Else
            If (useLesspause) Then Exit Sub
        End If
        Image1.Picture = picImgs(lPlaySta Or 2)End SubPrivate Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)    If (lPlaySta = 0) Then
            If (useLessplay) Then Exit Sub
        Else
            If (useLesspause) Then Exit Sub
        End If
        Image1.Picture = picImgs(lPlaySta Or 1)End Sub
      

  5.   

    楼主参考这个代码:
    Option ExplicitPrivate picImgs(7) As StdPicture
    Private useLessplay As Boolean, useLesspause As Boolean
    Private lPlaySta As LongPrivate Sub Form_Load()
        'useLessplay = True
        'useLesspause = False
        Dim i&
    'picImgs() 0 ~ 3 是 播放状态图片
    'picImgs() 4 ~ 7 是 暂停状态图片
    '图片顺序是 正常、鼠标移上、鼠标按下、禁用
    '楼主的图片名称,要用8条语句加载图片
        For i = 0 To 7
            Set picImgs(i) = LoadPicture("X:\Temp\p0" & i + 1 & ".jpg")
        Next
        lPlaySta = 4: Image1.Picture = picImgs(lPlaySta)
    End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If (lPlaySta = 0) Then
            Image1.Picture = picImgs(CLng(useLessplay) And 3)
        Else
            Image1.Picture = picImgs(lPlaySta Or CLng(useLesspause) And 3)
        End If
    End SubPrivate Sub Image1_Click()
        If (lPlaySta = 0) Then
            If (useLessplay) Then Exit Sub
        Else
            If (useLesspause) Then Exit Sub
        End If
        lPlaySta = lPlaySta Xor 4
        If (lPlaySta = 4) Then
            Image1.Picture = picImgs(lPlaySta Or CLng(useLesspause) And 3)
        Else
            Image1.Picture = picImgs(lPlaySta Or CLng(useLessplay) And 3)
        End If
    End SubPrivate Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If (Button <> 1) Then Exit Sub
        If (lPlaySta = 0) Then
            If (useLessplay) Then Exit Sub
        Else
            If (useLesspause) Then Exit Sub
        End If
        Image1.Picture = picImgs(lPlaySta Or 2)
    End SubPrivate Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If (lPlaySta = 0) Then
            If (useLessplay) Then Exit Sub
        Else
            If (useLesspause) Then Exit Sub
        End If
        Image1.Picture = picImgs(lPlaySta Or 1)
    End Sub