<Return[T]><Top>

TrackPopupMenu

Declare Function Api_TrackPopupMenu& Lib "user32" Alias "TrackPopupMenu" (ByVal hMenu&, ByVal wFlags&, ByVal x&, ByVal y&, ByVal nReserved&, ByVal hWnd&, ByVal lprc As Any)

Declare Function TrackPopupMenu Lib "user32" Alias "TrackPopupMenu" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As Rect) As Long

指定された位置にショートカットメニューを表示し、そのメニュー内のメニュー項目の選択状況を追跡する。ショートカットメニューは、画面内のどこにでも表示できる。

画面の特定の領域でショートカットメニューのオーバーラップ(重ね合わせ)を禁止するには、TrackPopupMenuEx 関数を使う。

パラメータ
hMenu
    表示対象のショートカットメニューのハンドルを指定する。

    新しいショートカットメニューを作成する場合は CreatePopupMenu 関数、既存のメニュー項目に関連付けられているサブメニューのハンドルを

    取得する場合は GetSubMenu 関数を呼び出すと、適切なハンドルを取得できる。
uFlags
    0、または関数のオプションを表す次のフラグの組み合わせを指定する。
    ショートカットメニューの水平方向の配置方法を決定するには、次のフラグのいずれかを指定する。

    値                                 

意味                                                                                         

    TPM_CENTERALIGN

ショートカットメニューの中心を、x パラメータが指定する座標に合わせる。

    TPM_LEFTALIGN

ショートカットメニューの左端を、x パラメータが指定する座標に合わせる。

    TPM_RIGHTALIGN

ショートカットメニューの右端を、x パラメータが指定する座標に合わせる。

    ショートカットメニューの垂直方向の配置方法を決定するには、次のフラグのいずれかを指定する。

    値                                 

意味                                                                                         

    TPM_BOTTOMALIGN

ショートカットメニューの下端を、y パラメータが指定する座標に合わせる。

    TPM_TOPALIGN

ショートカットメニューの上端を、y パラメータが指定する座標に合わせる。

    TPM_VCENTERALIGN

ショートカットメニューの中心を、y パラメータが指定する座標に合わせる。

    メニューに親ウィンドウを割り当てていない状況で、ユーザーが何か選択をした場合の動作方法を決定するには、次のフラグのいずれかを指

    定する。

    値                                 

意味                                                                                         

    TPM_NONOTIFY

ユーザーが 1 つのメニュー項目をクリックしたとき、この関数は通知メッセージを送信しない。

    TPM_RETURNCMD

関数の戻り値として、ユーザーが選択したメニュー項目の識別子を返する。

    マウスボタンを使ってショートカットメニューを選択する方法を決定するには、次のフラグのいずれかを指定する。

    値                                 

意味                                                                                         

    TPM_LEFTBUTTON

ユーザーはマウスの左ボタンでのみ、ショートカットメニューの選択を行える。

    TPM_RIGHTBUTTON

ユーザーは、マウスの左と右どちらのボタンでも、ショートカットメニューの選択を行える。

    Windows 98 と Windows 2000:メニューのアニメーション表示の方法を決定するには、次のフラグのいずれかを指定する。

    値                                           

意味                                                                                         

    TPM_HORNEGANIMATION

左から右へ向かってメニューのアニメーション表示を行う。

    TPM_HORPOSANIMATION

右から左へ向かってメニューのアニメーション表示を行う。

    TPM_NOANIMATION

アニメーションなしでメニューを表示する。

    TPM_VERNEGANIMATION

下から上へ向かってメニューのアニメーション表示を行う。

    TPM_VERPOSANIMATION

上から下へ向かってメニューのアニメーション表示を行う。

    Windows 98 と Windows 2000:アニメーション表示を行うには、SystemParametersInfo 関数の uiAction パラメータで

    SPI_SETMENUANIMATION フラグを指定しなければならない。
    Windows 2000:SystemParametersInfo 関数でメニューのフェードアニメーション表示を有効にした場合は、TrackPopupMenu 関数の

    uFlags パラメータ(このパラメータ)の TPM_*ANIMATION フラグは、TPM_NOANIMATION フラグを除き、いずれも無視される。
    Windows 98 と Windows 2000:他のメニューが既に表示されている状態で、さらにメニューを表示するには、TPM_RECURSE フラグを使

    う。このフラグは、1 つのメニュー内でコンテキストメニューをサポートすることを意図している。

    値                                 

意味                                                                                         

    TPM_RECURSE

メニュー内で、特定のメニュー項目に関するチップヘルプの表示を有効にする。

x
    ショートカットメニューの水平位置を、スクリーン座標で指定する。
y
    ショートカットメニューの垂直位置を、スクリーン座標で指定する。
nReserved
    予約されている。0 を指定する。
hWnd
    ショートカットメニューを所有する 1 つのウィンドウのハンドルを指定する。

    このウィンドウは、メニューが送信するすべてのメッセージを受信する。TrackPopupMenu 関数が制御を返した段階で、このウィンドウは

    WM_COMMAND メッセージを受信する。
    uFlags パラメータで TPM_NONOTIFY フラグを指定すると、この関数は、hWnd パラメータで指定されたウィンドウへメッセージを送信しな

    い。その場合も、hWnd パラメータで 1 つのウィンドウのハンドルを指定する。アプリケーションの任意のウィンドウのハンドルを指定するだけ

    でよい。
prcRect
    無視される。

戻り値
    uFlags パラメータで TPM_RETURNCMD を指定した場合、ユーザーが選択したメニュー項目の識別子が返る。ユーザーが何もメニュー項

    目を選択せずにメニューを取り消した場合や、エラーが発生した場合は、0 が返る。
    uFlags パラメータで TPM_RETURNCMD を指定しなかった場合、関数が成功すると、0 以外の値が返る。関数が失敗すると、0 が返

    る。拡張エラー情報を取得するには、GetLastError 関数を使う。