读书人

vb开发 activex控件有关问题

发布时间: 2012-01-02 22:40:04 作者: rapoo

vb开发 activex控件问题
因项目要求,需要用vb开个一个activex控件

嵌入到网页中,在网页中点击进入控件,,

要求控件能够全屏显示,就是遮住整个屏幕,包括windows下面的状态栏

有没有高手有解决办法啊,高分奉上

跪求解决办法

[解决办法]

VB code
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一下。
VB code
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 

读书人网 >VB

热点推荐