'按 Alt + F11 转到 VBE 界面,然后新建一个模块,将以下代码 COPY 进去 Public Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Public Type APPBARDATA cbSize As Long hwnd As Long uCallbackMessage As Long uEdge As Long rc As RECT lParam As Long End Type Public Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, _ pData As APPBARDATA) As Long '参考:http://msdn2.microsoft.com/en-us/library/bb787961.aspx '参考:http://msdn2.microsoft.com/en-us/library/ms630813.aspx Public Const ABS_ALWAYSONTOP = &H2 Public Const ABS_AUTOHIDE = &H1 Public Const ABS_BOTH = &H3 '参考:http://msdn2.microsoft.com/en-us/library/ms647647.aspx Public Const ABM_ACTIVATE = &H6 Public Const ABM_GETSTATE = &H4 Public Const ABM_GETTASKBARPOS = &H5 Public Const ABM_NEW = &H0 Public Const ABM_QUERYPOS = &H2 Public Const ABM_REMOVE = &H1 Public Const ABM_SETAUTOHIDEBAR = &H8 Public Const ABM_SETPOS = &H3 Public Const ABM_SETSTATE = &HA Public Const ABM_WINDOWPOSCHANGED = &H9 Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long '=========================================================== ' 过程及函数名: RunTest ' 版本号 : -- ' 说明 : 本过程只用于演示如何用VBA设置自动隐藏工具栏 ' 引用 : -- ' 输入参数 : -- ' 输出值 : -- ' 返回值 : -- ' 调用演示 : RunTest ' 最后修改日期: 2007-11-26 23:00:00 ' 示例地址 : http://access911.net/?kbid;72FABE1E1ADCEFF3 ' 作者 : cg1 ' 网站 : http://access911.net ' 电子邮件 : access911@gmail.com ' 版权 : 作者保留一切权力, ' 请在公布本代码时将本段说明一起公布,谢谢! '=========================================================== Public Sub RunTest() '将光标停在这里按 F5 键即可运行看效果 '参考:http://support.microsoft.com/kb/143117 Dim abd As APPBARDATA Dim lngResult As Long Dim hTaskBar As Long abd.cbSize = Len(abd) lngResult = SHAppBarMessage(ABM_GETSTATE, abd) '查询状态 Select Case lngResult Case ABS_BOTH Debug.Print "自动隐藏,且将任务栏保持在其他窗口的前面" Case ABS_AUTOHIDE Debug.Print "自动隐藏" Case ABS_ALWAYSONTOP Debug.Print "将任务栏保持在其他窗口的前面" End Select SHAppBarMessage ABM_GETTASKBARPOS, abd hTaskBar = FindWindowEx(0, 0, "Shell_TrayWnd", vbNullString) If hTaskBar = 0 Then Debug.Print "查找状态栏失败" Exit Sub End If abd.hwnd = hTaskBar 'abd.lParam = ABS_ALWAYSONTOP Or ABS_AUTOHIDE '自动隐藏,且位于窗口前 'abd.lParam = ABS_ALWAYSONTOP '不自动隐藏,且位于窗口前 abd.lParam = ABS_AUTOHIDE '自动隐藏,且不位于窗口前 SHAppBarMessage ABM_SETSTATE, abd '进行设置 End Sub |