2010/11/12

office2010 Win32API ShowWindow アプリケーションウインドウ/タスクバーの非表示

Option Compare Database
Option Explicit

'ShowWindow
'http://msdn.microsoft.com/ja-jp/library/cc411211.aspx

Public Const SW_HIDE = 0
Public Const SW_SHOWNORMAL = 1
Public Const SW_NORMAL = 1
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_MAXIMIZE = 3
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOW = 5
Public Const SW_MINIMIZE = 6
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNA = 8
Public Const SW_RESTORE = 9
Public Const SW_SHOWDEFAULT = 10
Public Const SW_MAX = 10
'SW_HIDE ウィンドウを非表示にし、他のウィンドウをアクティブにします。
'SW_MAXIMIZE ウィンドウを最大化します。
'SW_MINIMIZE ウィンドウを最小化し、Z オーダーが次のトップレベルウィンドウをアクティブにします。
'SW_RESTORE ウィンドウをアクティブにして表示します。最小化または最大化されていたウィンドウは、元の位置とサイズに戻ります。最小化されているウィンドウを元に戻す場合は、このフラグをセットします。
'SW_SHOW ウィンドウをアクティブにして、現在の位置とサイズで表示します。
'SW_SHOWDEFAULT  アプリケーションを起動したプログラムが 関数に渡した 構造体で指定された SW_ フラグに従って表示状態を設定します。
'SW_SHOWMAXIMIZED ウィンドウをアクティブにして、最大化します。
'SW_SHOWMINIMIZED ウィンドウをアクティブにして、最小化します。
'SW_SHOWMINNOACTIVE ウィンドウを最小化します。
'SW_SHOWMINIMIZED と似ていますが、この値を指定した場合は、ウィンドウはアクティブ化されません。
'SW_SHOWNA ウィンドウを現在のサイズと位置で表示します。
'SW_SHOW と似ていますが、この値を指定した場合は、ウィンドウはアクティブ化されません。
'SW_SHOWNOACTIVATE ウィンドウを直前の位置とサイズで表示します。
'SW_SHOWNORMAL と似ていますが、この値を指定した場合は、ウィンドウはアクティブ化されません。
'SW_SHOWNORMAL ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されていた場合は、その位置とサイズを元に戻します。初めてウィンドウを表示するときには、このフラグを指定してください。

#If VBA7 Then
Public Declare PtrSafe Function ShowWindow Lib "user32" _
                                (ByVal hwnd As LongPtr, _
                                 ByVal nCmdShow As Long _
                                ) As Long
#Else
Public Declare Function ShowWindow Lib "user32" _
                           (ByVal hwnd As Long, _
                            ByVal nCmdShow As Long _
                           ) As Long
#End If
Option Compare Database
Option Explicit

'*** 必要条件 ***
'Me.PopUp = Trueであること。
'
Private Sub Form_Open(Cancel As Integer)
    If Not Me.PopUp Then Exit Sub
    Dim rc As Long
    rc = ShowWindow(Application.hWndAccessApp, SW_HIDE)
    rc = ShowWindow(Me.hwnd, SW_SHOW)
End Sub

Private Sub Form_Close()
    Dim rc As Long
    rc = ShowWindow(Application.hWndAccessApp, SW_SHOW)
End Sub


動作確認:win7(64/32)/XPSP3/access2010(64/32)/access2007/Runtime

0 件のコメント: