vb开发 activex控件问题
因项目要求,需要用vb开个一个activex控件
嵌入到网页中,在网页中点击进入控件,,
要求控件能够全屏显示,就是遮住整个屏幕,包括windows下面的状态栏
有没有高手有解决办法啊,高分奉上
跪求解决办法
[解决办法]
Private Const SW_HIDE = 0Private Const SW_SHOW = 5Private Declare Function FindWindow Lib "user32" _ Alias "FindWindowA" (ByVal lpClassName As String, _ ByVal lpWindowName As String) As LongPrivate Declare Function FindWindowEx Lib "user32" _ Alias "FindWindowExA" (ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, ByVal lpsz1 As String, _ ByVal lpsz2 As String) As LongPrivate Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As LongPrivate Function Fun_DisplayTaskBar(ByVal bShow As Boolean) As Integer '显示/隐藏 状态栏 Dim lTaskBarHWND As Long Dim lRet As Long Dim lFlags As Long On Error GoTo vbErrorHandler lFlags = IIf(bShow, SW_SHOW, SW_HIDE) lTaskBarHWND = FindWindow("Shell_TrayWnd", "") lRet = ShowWindow(lTaskBarHWND, lFlags) If lRet < 0 Then Exit Function End If vbErrorHandler: End Function Private Function Fun_DisplayDeskTopIcons(ByVal bShow As Boolean) As Integer '显示/隐藏 桌面图标 Dim lDesktopHwnd As Long Dim lFlags As Long On Error Resume Next lDesktopHwnd = FindWindowEx(0&, 0&, "Progman", vbNullString) If lDesktopHwnd = 0 Then Exit Function End If lFlags = IIf(bShow, SW_SHOW, SW_HIDE) ShowWindow lDesktopHwnd, lFlags End FunctionPrivate Sub Form_Load()Fun_DisplayTaskBar FalseMe.Top = 0Me.Height = 0Me.Width = Screen.WidthMe.Height = Screen.WidthEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)Fun_DisplayTaskBar TrueEnd Sub
[解决办法]
创建一个ActiveX控件工程,在UserControl上放置一个按钮,然后复制以下代码,生成控件后,在HTML中使用OBJECT标签引用该控件,在IE中打开HTML文件,点击按钮看看效果。至于安全性,则自己GOOGLE一下。
Option ExplicitPrivate Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As LongPrivate Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As LongPrivate Sub Command1_Click() Dim hwndIE As Long Dim strClassName As String '获得控件所在IE窗口的句柄 hwndIE = GetParent(GetParent(UserControl.ContainerHwnd)) '获得窗口类 strClassName = String(255, vbNullChar) strClassName = Left(strClassName, GetClassName(hwndIE, strClassName, Len(strClassName))) '如果不是IEFrame则退出 If strClassName <> "IEFrame" Then Exit Sub '设置控件所在的IE窗口为全屏 Dim SHApp As Object, SHWin As Object Set SHApp = CreateObject("Shell.Application") For Each SHWin In SHApp.windows If LCase(Right(SHWin.FullName, 12)) = "iexplore.exe" Then If SHWin.hwnd = hwndIE Then SHWin.FullScreen = True Exit Sub End If End If NextEnd SubPrivate Sub UserControl_Initialize() Command1.Caption = "全屏" UserControl.BackColor = vbRedEnd Sub