HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0112
隣のおばさん指定したハンドル上で右クリックメニュー表示1未解決


隣のおばさん

リンク

2014/1/12(Sun) 13:40:04|NO.59310

#uselib "user32"
#cfunc CreatePopupMenu "CreatePopupMenu" #func AppendMenu "AppendMenuA" int, int, int, str #func TrackPopupMenu "TrackPopupMenu" int, int, int, int, int, int #func DestroyMenu "DestroyMenu" int ; サブメニューを作成し、ハンドルを取得 hMenu.0 = CreatePopupMenu () AppendMenu hMenu.0, , $3, "サブメニュー項目 3" AppendMenu hMenu.0, , $4, "サブメニュー項目 4" ; メインのポップアップメニューを作成し、ハンドルを取得 hMenu.1 = CreatePopupMenu () AppendMenu hMenu.1, , $1, "メニュー項目 1" ; 第2パラを$800にするとセパレータ(区切り線)になる。 AppendMenu hMenu.1, $800, , "" AppendMenu hMenu.1, , $2, "メニュー項目 2" ; 第2パラメータを$10にするとサブメニューへ。 ; 第3パラにサブメニューのハンドルを入れる。 AppendMenu hMenu.1, $10, hMenu.0, "サブメニュー" onclick gosub *onjump ; マウスをクリックした時 ; または、「oncmd gosub *onjump, $201」 (WM_RBUTTONDOWN) onexit *exit stop *onjump if wparam = 2 { ; 右クリックされた時 ; ポップアップメニューを開く。第1パラに開くポップアップ ; メニューのハンドルを指定してやる。 TrackPopupMenu hMenu.1, $100, ginfo (0), ginfo (1), , hwnd ; stat にそれぞれメニュー項目のIDが返る if stat = $1 : dialog "項目 1 選択" if stat = $2 : dialog "項目 2 選択した" if stat = $3 : dialog "項目 3 選択です" if stat = $4 : dialog "項目 4 選択じゃ" } return *exit DestroyMenu hMenu.1 end

これだとexe上で右クリするとメニューがでるんですが
他のプロセスのハンドルを取得しそこに、右クリックメニュを表示できないでしょうか?



この記事に返信する


ソイスープ

リンク

2014/1/14(Tue) 11:27:12|NO.59328

oncmd を使用してでWM_CONTEXTMENUメッセージを受け取ッてください

// // 主に ユーザーがコントロールを右クリックして // メニューがポップアップされる条件を満たしたときに 通知されます。 // #define WM_CONTEXTMENU 0x007B oncmd gosub *oncmd_wm_wm_contextmenu , WM_CONTEXTMENU button gosub "test",*dummy button gosub "test2",*dummy stop *dummy:return *oncmd_wm_wm_contextmenu #define h_wnd wParam #define xPos lParam&0xFFFF #define yPos (lparam>>16)&0xFFFF if(objinfo_hwnd(0)==h_wnd){ dialog "ボタン test が右クリックされました" }else:if((objinfo_hwnd(1)==h_wnd)){ dialog "ボタン test2 が右クリックされました" } return



ONION software Copyright 1997-2023(c) All rights reserved.