136.指定の位置にポップアップメニューを表示する

< 使用用途 >
メニューを操作する時に用いる

今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=>ダウンロード・・・下記のソースと同じです。


 < 説明 >
API関数のTrackPopupMenuを使用します
TrackPopupMenu =>指定の位置にポップアップメニューを表示
  <引数>
     hMenu:ポップアップメニューのハンドル
     wFlags:定数(TPM_××参照)の組み合わせ
     x:水平位置
     y:垂直位置
     nReserved:常に0
     hWnd:ウインドウのハンドル
     lprc:常に0
  @戻り値@
    正常終了0以外

*x,yはスクリーン座標
*' (lprc As Rect)を(ByVal lprc As Long)に変更しています。<<< 使わないと思うので・・・


< SAMPLE >
'ここでは画面の左上にポップアップメニューを表示する処理です。<注>メニューを各自用意してください

'標準モジュール
Public Declare Function GetMenu Lib "USER32" (ByVal hWnd As Long) As Long

Public Declare Function GetSubMenu Lib "USER32" (ByVal hMenu As Long, ByVal nPos As Long) As Long

Public Declare Function TrackPopupMenu Lib "USER32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hWnd As Long, ByVal lprc As Long) As Long

Public Const TPM_LEFTALIGN = &H0&'メニューの左隅をxで指定した座標にする
Public Const TPM_LEFTBUTTON = &H0&'マウスの左ボタンを追跡
Public Const TPM_RIGHTALIGN = &H8& 'メニューの右隅をyで指定した座標にする
Public Const TPM_RIGHTBUTTON = &H2& 'マウスの右ボタンを追跡

'ここからはフォーム内の処理です
Private Sub Command1_Click()

Dim hMen As Long
Dim SubMen As Long
Dim Ret As Long

  hMen = GetMenu(Form1.hWnd)
  SubMen = GetSubMenu(hMen, 0)
  Ret = TrackPopupMenu(SubMen, TPM_LEFTALIGN, 0, 0, 0, Form1.hWnd, 0)

End Sub





API 技術関連のページへ戻る

ホーム PV ランキング