設為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

API: 管理 Access 窗口 (朱亦文譯)

2002-6-17 08:39| 發(fā)布者: admin| 查看: 1261| 評論: 11|原作者: zhuyiwen|來自: m.mzhfr.cn

摘要: -------------------------------------------------------------------------------- API: 管理 Access 窗口 -------------------------------------------------------------------------------- (問) 怎樣 ...

--------------------------------------------------------------------------------
API: 管理 Access 窗口
--------------------------------------------------------------------------------

通過一函數(shù)已定義的常量 fSetAccessWindow 實現(xiàn)最大化、最小化 ACCESS 的主窗口

該函數(shù)能用來完全隱藏 Access 窗口并將你自己的窗體顯示在桌面上。在彈出式窗體的 Open 事件中使用 SW_HIDE 參數(shù)調(diào)用 fSetAccessWindow 函數(shù)實現(xiàn)。

注意:如果你隱藏了 Access 主窗口,要確定你有良好的出錯處理。因為主窗口隱藏后,一旦引發(fā)錯誤,并出錯提示窗口上點擊了“結束”按鈕,這樣不會使 Access 主窗口可見,并退出你自己的窗體。推薦你在你的錯誤處理程序中使用 SW_SHOWNORMAL 參數(shù)調(diào)用 fSetAccessWindow 函數(shù)來顯示 Access 主窗口。
如果由于別的原因,Access 主窗口不能顯示,那么你將只能從任務欄中關閉你的 mdb,在 Win 9x 中使用 Control-Alt-Delete 來結束任務,在 Win NT 、2000 或 XP 中,可以右鍵單擊任務欄選擇任務管理器來選擇該 mdb 結束任務。


'************ 代碼開始 **********
Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3


Private Declare Function apiShowWindow Lib "user32" _
    Alias "ShowWindow" (ByVal hwnd As Long, _
          ByVal nCmdShow As Long) As Long

Function fSetAccessWindow(nCmdShow As Long)
' 使用舉例
' 最大化 Access 窗口
'       ?fSetAccessWindow(SW_SHOWMAXIMIZED)
' 最小化 Access 窗口
'       ?fSetAccessWindow(SW_SHOWMINIMIZED)
' 隱藏 Access 窗口
'       ?fSetAccessWindow(SW_HIDE)
' 正常顯示 Access 窗口
'       ?fSetAccessWindow(SW_SHOWNORMAL)
'
Dim loX  As Long
Dim loForm As Form
    On Error Resume Next
    Set loForm = Screen.ActiveForm
    If Err <> 0 Then                         ' 沒有活動窗體 no Activeform
      If nCmdShow = SW_HIDE Then
        MsgBox "除非屏幕上有一個窗口,否則不能隱藏 Access 主窗口!" _
                    & vbcr & vbcr  _
                    & "Cannot hide Access unless " _
                    & "a form is on screen"
      Else
        loX = apiShowWindow(hWndAccessApp, nCmdShow)
        Err.Clear
      End If
    Else
        If nCmdShow = SW_SHOWMINIMIZED And loForm.Modal = True Then
            MsgBox "不能由屏幕上的 " & (loForm.Caption + " ")  & "窗體最小化 Access 主窗口!" _
                    & vbcr & vbcr  _
                    & "Cannot minimize Access with " _
                    & (loForm.Caption + " ") _
                    & "form on screen"
        ElseIf nCmdShow = SW_HIDE And loForm.PopUp <> True Then
            MsgBox "不能由屏幕上的 " & (loForm.Caption + " ")  & "窗體隱藏 Access 主窗口!" _
                    & vbcr & vbcr  _
                    & "Cannot hide Access with " _
                    & (loForm.Caption + " ") _
                    & "form on screen"
        Else
            loX = apiShowWindow(hWndAccessApp, nCmdShow)
        End If
    End If
    fSetAccessWindow = (loX <> 0)
End Function

'************ 代碼結束 **********

未經(jīng)許可,請勿轉(zhuǎn)載


發(fā)表評論

最新評論

引用 ganrong 2002-6-17 09:31
very good
引用 huanghai 2002-6-17 16:26
好,又為我們作貢獻了!
引用 yuab 2002-6-24 19:32
太好了
看來這個動作又為我們開發(fā)的軟件向更專業(yè)化邁進了一步了。
引用 sunredday 2002-6-24 20:25
好好好
引用 dca 2002-6-24 21:21
此函數(shù)有時會出現(xiàn)系統(tǒng)菜單丟失的問題!!!
引用 binbow_z 2002-6-25 01:25
在ACCESS啟動參數(shù)中可以做到,我一般不用API,出了問題不知道如何搞
引用 yuab 2002-7-8 21:02
這個都搞出來了,能不能再接再勵將Access的啟動畫面也搞掉呢?
引用 zyj_1978 2002-9-17 22:19
binbow_z:
在ACCESS啟動參數(shù)中怎么搞???
能告訴我嗎?謝謝!
我的郵箱:zyj_1978@hotmail.com
引用 zyj_1978 2002-9-20 02:08
請高手指點一下!!!
我用了朱版主的代碼,非常好!但有一個問題:按下窗體中的報表預覽按鈕,怎么也打不開報表了,直接打印還可以。真不知該怎么辦。!
還望各位指點一下,謝了!

引用 HG 2002-9-20 02:58
以下是引用binbow_z在2002-6-24 17:24:38的發(fā)言:
在ACCESS啟動參數(shù)中可以做到,我一般不用API,出了問題不知道如何搞

說真的出了問題,就難搞定了,我現(xiàn)在很多東西都不會用
比如:API接口,OCX控件,等等 一系列的增強功能。
引用 WTM1 2002-9-24 01:35
她做的太絕了!
該代碼不知道被那位大蝦改造。∈堑腶ccess幾乎全部有效菜單全部失效。
建議使用時不要更改。

查看全部評論(11)

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-13 08:18 , Processed in 0.098813 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部