
Win32 APIを使って、ポップアップメニュー(右クリックメニュー、コンテキストメニュー)を実現してみました。

「USER32」の、「DWORD GetMenu(DWORD)」を、「?」の、「メニュー取得」として、DLLを利用。 |
| 関数 | 引数 | 戻り値 |
|---|---|---|
| GetMenu | 母艦のハンドル | メニューのハンドル |
| GetSubMenu | メニューのハンドル 取得したい親メニューの番目 | 親メニューのハンドル |
| TrackPopupMenu | 親メニューのハンドル オプション(0か2がおすすめ) X座標 Y座標 ?(0でいい) 母艦のハンドル ?(0でいい) | 成功なら0以外 失敗なら0 |
ファイルメニューを、メニュー作成。 |
ポップアップ用の親&子メニューを用意します。
母艦の、マウス押した時は、( |
『マウス押した時』イベントで『押された特殊キー』が「Right」ならば、 右クリックされたということで、先に進みます。
X,Yはデスクトップ上の座標を指定します。
2=ウィンドウ枠の幅
40=ウィンドウ枠の高さ(2)+タイトルバーの高さ(19)+メニューバーの高さ(19)
としてますが、合ってるでしょうか?(^_^;)
{メニューハンドル取得} |
起動時に、「メニュー取得」「サブメニュー取得」で、 ポップアップ用メニューのハンドルを取得します。