'タスクトレイでメニュー {---プログラム掲示板投稿フォーム--- 【ソフト名】タスクトレイでメニュー (バージョン 0.1) 【作 成 者】moka (連絡先:moka21@ybb.ne.jp) http://www.geocities.jp/moka21/teatime/ 【種 別】フリーソフトウェア 【ひまわりのバージョン】ver.1.56で確認 【転 載】可(転載条件:ご自由に) 【改変運用】可 【ひまわり本体への梱包】可 【実行時に利用作成するファイル】無 【コメント】 『タスクトレイへアイコン表示(オン)』のときに、 そこにポップアップメニューを表示してみました。 動作が少し変です。 ・メニューを選択せず、適当なところをクリックすると、 メニューの上にマウスが来ないと、メニューが消えない。 ・母艦が表示されてると、メニューが表示されない。 ---投稿フォームここまで---}
'マウスカーソルの位置を引数(構造体)に得る。 「User32」の、「int GetCursorPos(char*)」を、 「?」の、「API_GetCursorPos」として、DLLを利用。 'ウィンドウのメニューのハンドルを得る。 「USER32」の、「DWORD GetMenu(DWORD)」を、 「?」の、「API_GetMenu」として、DLLを利用。 'メニューのサブメニューのハンドルを得る。 「USER32」の、「DWORD GetSubMenu(DWORD,DWORD)」を、 「?,?」の、「API_GetSubMenu」として、DLLを利用。 'サブメニューをポップアップする。 「USER32」の、「DWORD TrackPopupMenu(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD)」を、 「?,?,?,?,?,?,?」の、「API_TrackPopupMenu」として、DLLを利用。
ポップアップメニューを、メニュー作成。 ポップアップメニューに、切り取りメニューを、メニュー追加。 ポップアップメニューに、コピーメニューを、メニュー追加。 ポップアップメニューに、貼り付けメニューを、メニュー追加。 ポップアップメニューに、区切りメニューを、メニュー追加。 その、テキストは、「-」 ポップアップメニューに、終了メニューを、メニュー追加。 その、イベントは、終わる。 構造体XYに、8バイトを、確保。 'ひまわりで構造体を扱う時、『確保』と『バイナリ取得』などを使う。 '今回は構造体(int x,int y)だから、それぞれ4バイト、計8バイト『確保』する。 母艦の、クリックした時は( API_GetCursorPos(構造体XY) 構造体XYの、1を、「INT」形式で、バイナリ取得。 '1バイト目から、INTつまり4バイトだけ、取得する。 X=それ。 構造体XYの、5を、「INT」形式で、バイナリ取得。 '同様に、5バイト目から4バイト取得する。 Y=それ。 API_TrackPopupMenu(メニューハンドル,2,X,Y,0,(母艦の、ハンドル),0) )
{メニューハンドル取得} API_GetMenu((母艦の、ハンドル))。'メニューバーのハンドル取得? API_GetSubMenu(それ、0)。'3番目の親メニューのハンドル取得? メニューハンドル=それ。
ポップアップメニューの、可視は、オフ。'ハンドル取得の後に可視オフ。 タスクトレイへアイコン表示(オン) 母艦最小化。 待機。
|