从VB6进行WebBrowser控制全屏检测

从VB6进行WebBrowser控制全屏检测,vb6,webbrowser-control,Vb6,Webbrowser Control,我正在尝试用WebBrowser控件检测全屏模式 Private Sub WebBrowser1_OnFullScreen(ByVal FullScreen As Boolean) Dim itState As Integer itState = chkOnTop.Value If FullScreen = True Then chkOnTop.Value = vbUnchecked Else chkOnTop.Value = itState End If End Su

我正在尝试用WebBrowser控件检测全屏模式

Private Sub WebBrowser1_OnFullScreen(ByVal FullScreen As Boolean)

 Dim itState As Integer

 itState = chkOnTop.Value

 If FullScreen = True Then
  chkOnTop.Value = vbUnchecked
 Else
  chkOnTop.Value = itState
 End If

End Sub
但它不起作用,即使我试图在双击它时获得这样一个简单的返回值,以获得全屏模式:

Private Sub WebBrowser1_OnFullScreen(ByVal FullScreen As Boolean)

 Form1.Caption = CStr(FullScreen)

End Sub
下面是要加载到WebBrowser控件中的名为example.htm的htm文件:

<html>

<body topmargin="0" leftmargin="0" scroll="no">

 <iframe 
  width="640"
  height="385"
  src="http://www.youtube.com/embed/xtYIEBOQ1eQ?rel=0&autoplay=1"
  allowfullscreen="true"
  menu="false"
  frameborder="0">
</iframe>

</body>

</html>
所以,我真正的问题是:

当视频加载到WebBrowser控件中,您双击视频,它将进入全屏模式,如果您再次双击,它将返回正常查看模式

现在我想检测这些事件

有人能帮我吗?

MSDN页面提到WebBrowser对象不支持该事件。但是,我确实发现以下代码:

Private Sub Form_Activate()
WebBrowser1.FullScreen = True
End Sub

Private Sub WebBrowser1_OnFullScreen(ByVal FullScreen As Boolean)
MsgBox FullScreen
End Sub
已成功显示值为True的消息框。所以,我不知道为什么这不适用于您的第二位代码

另一方面,这行代码有故障:

chkOnTop.Value = Unchecked

正确的常量为vbUnchecked,在VB6文档中查找CheckBox控件时,将看不到该常量。改为查看常量部分;您将看到,Unchecked只是value属性的值0的描述,而不是等于0的常量。而且,所有带有itState字符串的代码行都是冗余的;您只需将当前值存储到一个变量中,并在不更改它的情况下重置该值。

双击表单将最大化表单窗口,但不会使webbrowser全屏显示

你双击什么

使用1个webbrowser控件和1个timer控件创建一个仅包含1个表单的新项目,并输入以下代码:

'1 form with:
'  1 webbrowser control: Name=WebBrowser1
'  1 timer control : Name=Timer1
Option Explicit

Private Sub Form_Click()
  With WebBrowser1
    .FullScreen = Not .FullScreen
  End With 'Webbrowser1
End Sub

Private Sub Form_Load()
  Timer1.Interval = 500
End Sub

Private Sub Timer1_Timer()
  Caption = CStr(Now) & " : " & CStr(WebBrowser1.FullScreen)
End Sub

Private Sub WebBrowser1_OnFullScreen(ByVal FullScreen As Boolean)
  Caption = "OnFullScreen event fired"
End Sub

Private Sub Form_Activate()
  WebBrowser1.FullScreen = True
End Sub
当您单击表单的背景时,它将切换webbrowser控件的全屏状态

计时器将每秒两次显示全屏状态,并在当前时间之前显示,以表明显示此状态的正是计时器


当OnFullScreen事件触发时,它将在标题中显示,而不是在当前时间之前,它将在500毫秒内被计时器覆盖,但当您注意时,您会看到它。请添加以下两行:

Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.WindowState = FormWindowState.Maximized
显然,您可以将代码放置在form_load之外的其他位置,并且根据您的包含列表,您可能需要或多或少的前置

该代码通过以下形式在我的VB6系统中很好地应用于我: Me.WindowState=vbMaximized 或:
Me.WindowsState=FormWindowsStateContents.vbMaximized

如果您可以使用webbrowser控件制作表单的Screen Dump alt printscreen,并编辑您的原始帖子以向我们展示,这可能会向我们展示更多您试图做的事情。hi@Hrqls,我没有正确表达自己,请再次查看我的问题,我扩展了它。嗨@BobRodes,是的,关于chkOnTop你是对的。值,我编辑了它,请再次查看我的问题,我扩展了它以便更好地理解。
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.WindowState = FormWindowState.Maximized