<Return[T]><Top>

TrackPopupMenuEx

Declare Function Api_TrackPopupMenuEx& Lib "user32" Alias "TrackPopupMenuEx" (ByVal hMenu&, ByVal fuFlags&, ByVal x&, ByVal y&, ByVal hWnd&, lptpm As TPMPARAMS)

Declare Function TrackPopupMenuEx Lib "user32" Alias "TrackPopupMenuEx" (ByVal hMenu As Long, ByVal fuFlags As Long, ByVal x As Long, ByVal y As Long, ByVal hWnd As Long, lptpm As TPMPARAMS) As Long

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

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

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

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

    値                                 

意味                                                                                                

    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 関数でメニューのフェードアニメーション表示を有効にした場合は、TrackPopupMenuEx 関数の

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

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

    値                                 

意味                                                                                                

    TPM_RECURSE

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

    特定の領域とのオーバーラップ(重ね合わせ)表示が禁止されている場合、水平と垂直どちらの方向を優先するのか決定するには、次の

    フラグのいずれかを指定する。

    値                                 

意味                                                                                                

    TPM_HORIZONTAL

 

指定された位置にメニューを表示すると、除外長方形にどうしても重なってしまう場合、システムは水平方向の

配置を優先して、メニューの位置を調整する。

    TPM_VERTICAL

 

指定された位置にメニューを表示すると、除外長方形にどうしても重なってしまう場合、システムは垂直方向の

配置を優先して、メニューの位置を調整する。

    除外長方形とは、メニューをオーバーラップさせるべきではない、画面の特定の領域を意味する。

    lptpm パラメータで、この領域を指定する。
x
    ショートカットメニューの水平位置を、スクリーン座標で指定する。
y
    ショートカットメニューの垂直位置を、スクリーン座標で指定する。
hwnd
    ショートカットメニューを所有する 1 つのウィンドウのハンドルを指定する。

    このウィンドウは、メニューが送信するすべてのメッセージを受信する。

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

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

    かまわない。
lptpm
    メニューのオーバーラップ表示を禁止する領域を表す、1 個の TPMPARAMS 構造体へのポインタを指定する。メニューをどこに表示してもか

    まわない場合は、NULL を指定する。
 

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

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

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