WebBrowser控制VB6的全屏检测

时间:2014-06-11 21:48:40

标签: vb6 webbrowser-control

我尝试使用WebBrowser Control检测全屏模式...

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

这是htm文件名为" example.htm"加载到WebBrowser控件:

<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>

当我按下Form上的CommandButton时加载:

WebBrowser1.Navigate App.Path & "\example.htm"

所以,我真正的问题是:

当视频加载到WebBrowser Control中并双击视频时,它会进入全屏模式,如果再次双击,则会返回正常视图模式。

现在我希望发现这些事件!

有人能帮助我吗?

3 个答案:

答案 0 :(得分:0)

This 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

正确的常量是&#34; vbUnchecked&#34;,您在VB6 doc中查找CheckBox控件时看不到。 (请查看常量部分here;您将看到&#34;未选中&#34;只是Value属性值0的描述,而不是等于0的常量。)此外,您的所有代码行都带有字符串&#34; itState&#34;是多余的;您只需将当前值存储到变量中并重置值,而无需更改它。

答案 1 :(得分:0)

双击表单将最大化表单窗口,它不会使webbrowser全屏。

你双击什么?

使用1个webbrowser控件和1个计时器控件创建一个只有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毫秒内被计时器覆盖,但是当你注意时你会看到它

答案 2 :(得分:0)

n您的Form_load添加以下两行:

Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.WindowState = FormWindowState.Maximized

显然,您可以将代码放在form_load之外的其他位置 - 根据您的包含列表,您可能需要或多或少的前置。

通过这种形式,我的VB6系统中的代码变得很好: Me.WindowState = vbMaximized 要么: Me.WindowState = FormWindowStateConstants.vbMaximized