プログラム言語 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