◆タスクトレイポップアップメニュー改

情報


概要

タスクトレイのイベントでポップアップメニューを表示させます。
「タスクトレイでポップアップメニュー」
の不具合を勝手に修正してみました。

解説

ひまわりでmokaさんが作成なさった「タスクトレイでメニュー」
http://www.isonly.net/~yuk_yt/himawari/pr/1165.html
をSWinXさんがなでしこに移植された
「タスクトレイでポップアップメニュー」
にメニューが他の場所をクリックしても消えないという不具合があったので修正して見ました。
そのためショートカットキーの動作も可能になっています。


サンプルプログラム

//ここから
'タスクトレイでメニュー
●母艦設計
 母艦の可視はオフ

■POINT
 ・X
 ・Y

!POINT_TYPEとは文字列="DWORD,DWORD"

●GetCursorPos({参照渡し}p)=DLL("USER32.DLL",
"INT GetCursorPos(
char* pPoint)")

●GetMenu(hWnd)=DLL("USER32.DLL",
"DWORD GetMenu(DWORD hWnd)")

●GetSubMenu(hMenu,I)=DLL("USER32.DLL",
"DWORD GetSubMenu(
DWORD hWnd,
DWORD Index)")

●TrackPopupMenu(hMenu,f,x,y,r,hWnd,p)=DLL("USER32.DLL",
"Int TrackPopupMenu(
Int hMenu,
Int wFlags,
Int x,
Int y,
Int nReserved,
Int hWnd,
Int lPrc)")

●SetForegroundWindow(hWnd) =DLL("user32.dll",
"BOOL SetForegroundWindow(
HWND hWnd
)")

「なし,M親,ダミー
M親,M子1,出す,,,母艦復活
M親,M線1,-
M親,M子2,終わる,,,終わり」をメニュー一括作成

GetMenu(母艦ハンドル)
メニューハンドル=GetSubMenu(それ,0)
M親の可視はオフ
母艦をタスクトレイ入れる

母艦のタスクトレイ右クリックした時は~
 Sとは文字列
 Sに8を確保
 SetForegroundWindow(母艦ハンドル)
 GetCursorPos(S)
 UNPACK(S,POINT,POINT_TYPE)
 TrackPopupMenu(メニューハンドル,2,POINT.X,POINT.Y,0,母艦ハンドル,0)

待機。

●母艦復活
 母艦をタスクトレイ出す
 母艦の可視はオン


  • テスト -- test (2010-09-23 00:30:57)
名前:
コメント:


タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年09月23日 00:30
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。