アクティブ時/非アクティブ時とかで切り替えるんならSetWindowPosが必要かも知れんね。
Option Compare Database
Option Explicit
'GetWindowLongPtr
'http://msdn.microsoft.com/ja-jp/library/cc364762.aspx
'SetWindowLongPtr
'http://msdn.microsoft.com/ja-jp/library/cc411204.aspx
'GetWindowLong
'http://msdn.microsoft.com/ja-jp/library/cc364760.aspx
'SetWindowLong
'http://msdn.microsoft.com/ja-jp/library/cc411203.aspx
Const GWL_EXSTYLE = -20
Const GWLP_HINSTANCE = -6
Const GWLP_ID = -12
Const GWL_STYLE = -16
Const GWLP_USERDATA = -21
Const GWLP_WNDPROC = -4
'GWL_EXSTYLE 新しい拡張ウィンドウスタイルを設定します。
'GWL_STYLE 新しいを設定します。
'GWLP_WNDPROC ウィンドウプロシージャへの新しいアドレスを設定します。
'GWLP_HINSTANCE 新しいアプリケーションインスタンスハンドルを設定します。
'GWLP_ID 新しいウィンドウ ID を設定します。
'GWLP_USERDATA ウィンドウに関連付けられた値を設定します。この 32 ビット値は、ウィンドウを作成したアプリケーションで使用する目的で各ウィンドウが持っているものです。この値の初期値は 0 です。
Const WS_EX_APPWINDOW = &H40000
#If Win64 Then
Private Declare PtrSafe Function GetWindowLongPtr Lib "user32" _
Alias "GetWindowLongPtrA" ( _
ByVal hwnd As LongPtr, _
ByVal nIndex As Long _
) As LongPtr
Private Declare PtrSafe Function SetWindowLongPtr Lib "user32" _
Alias "SetWindowLongPtrA" ( _
ByVal hwnd As LongPtr, _
ByVal nIndex As Long, _
ByVal dwNewLong As LongPtr _
) As LongPtr
#Else
Private Declare PtrSafe Function GetWindowLongPtr Lib "user32" _
Alias "GetWindowLongA" ( _
ByVal hwnd As LongPtr, _
ByVal nIndex As Long _
) As LongPtr
Private Declare PtrSafe Function SetWindowLongPtr Lib "user32" _
Alias "SetWindowLongA" ( _
ByVal hwnd As LongPtr, _
ByVal nIndex As Long, _
ByVal dwNewLong As LongPtr _
) As LongPtr
#End If
Sub AddTaskBarlist()
Dim Ws As LongPtr
Dim pHwnd As LongPtr
pHwnd = CodeContextObject.hwnd
Ws = GetWindowLongPtr(pHwnd, GWL_EXSTYLE)
Ws = Ws Or WS_EX_APPWINDOW
SetWindowLongPtr pHwnd, GWL_EXSTYLE, Ws
End Sub
0 件のコメント:
コメントを投稿