Menu ›› DisplayPopupMenu

プログラム言語 FreeBasic


DisplayPopupMenu

構文

DisplayPopupMenu(Hmenu, [Xpos=MouseX()], [Ypos=MouseY()], [hwnd=1], [flag=TPM_VERTICAL ])

sub DisplayPopupMenu(ByVal menu As HMENU, ByVal Xpos As long=FB_IGNORE, ByVal Ypos As long=FB_IGNORE, ByVal hwnd As hwnd = Cast(hwnd,1),ByVal flag As long=TPM_VERTICAL)

説明

ポップアップ・メニューを作成します。

オプション

Hmenu - menu ハンドル

Xpos - X 軸上の位置 (デフォルトのマウスの位置)

Ypos - Y 軸上の位置 (デフォルトのマウスの位置)

hwnd - メニューを作成する対象のウインドウ (デフォルトは、親メニューのウィンドウ)
Linux では、hwnd パラメーターが SysTray ハンドルと等しい場合、メニューに対して SysTray の横の座標が自動的に計算されます。

flag:

TPM_HORIZONTAL メニューが、指定された位置に表示できず、除外された長方形が重ならないならば、システムは要請された垂直方向で調整する前に、要請された横方向の調整をして、収めようとします。
TPM_VERTICAL メニューを、指定された位置に表示できず、除外された矩形が重複しないなら、システムは要求された水平方向で配置する前に、要求された垂直方向で配置しようとします。

TPM_CENTERALIGN - xで指定された座標に対して、メニューの中心を水平に整列させます。
TPM_LEFTALIGN - xで指定された座標の左側に位置合わせして、メニューを設定します。
TPM_RIGHTALIGN - xで指定された座標に、メニューの右辺を位置合わせして設定します。

TPM_BOTTOMALIGN このフラグが設定されている場合、関数は、ショートカット・メニューを、その下側がyで指定された座標に位置するように、表示します。
TPM_TOPALIGN このフラグが設定されている場合、関数は、その上端がyで指定された座標に揃うように、ショートカット・メニューを表示します。
TPM_VCENTERALIGN このフラグが設定されている場合、この関数は、yで指定された座標に対して垂直に、ショートカットメニューを、中央に配置します。

TPM_NONOTIFY このフラグが設定されていると、ユーザーがメニュー項目をクリックしても、この関数は、通知メッセージを送信しません。
TPM_RETURNCMD このフラグが設定されている場合、この関数は、ユーザーが選択したメニュー項目の識別子を返します。

TPM_HORNEGANIMATION アニメーション化し、右から左にメニュー。
TPM_HORPOSANIMATION アニメーション化し、左から右にメニュー。
TPM_NOANIMATION アニメーション化せずに、メニューを表示します。
TPM_VERNEGANIMATION アニメーション化し、下から上にメニュー。
TPM_VERPOSANIMATION アニメーション化し、上から下にメニュー。


プラットホーム

Windows , Linux


#Include "window9.bi"

Dim As HMENU hMessages
Dim As Integer event

OpenWindow("",10,10,400,400)

hMessages=CreatePopMenu()
MenuItem(1001,hMessages,"1 Menu")
MenuItem(1002,hMessages,"2 Menu")

Do
   event=WaitEvent
   If event=EventMenu then
      Select case EventNumber
         Case 1001
            MessBox("","1 Menu")
         Case 1002
            MessBox("","2 Menu")
      End Select
   ElseIf event=eventrbdown Then
      DisplayPopupMenu(hMessages, GlobalMouseX,GlobalMouseY)
   EndIf
   If event=EventClose Then End
Loop

結果




旧例:

#Include "window9.bi"

Dim As HMENU hMessages
Dim As Integer event
OpenWindow("",10,10,400,400)

hMessages=CreatePopMenu()
MenuItem(1,hMessages,"1 menu")
MenuItem(2,hMessages,"2 menu")

Do
  event=WaitEvent
  If event=EventMenu then
    Select case EventNumber
      Case 1
        MessBox("","1 menu")
      Case 2
        MessBox("","2 menu")
    End Select
  ElseIf event=WM_RBUTTONDOWN Then
    DisplayPopupMenu(hMessages)
  EndIf
  If event=EventClose Then End
Loop


http://mneniya.ucoz.ru/

←リンク元に戻る Window9 トップに戻る FreeBASIC マニュアル トップに戻る
ロシア語オリジナル:https://users.freebasic-portal.de/freebasicru/window9lib/window9.html