タスクバーのクリックを感知するには?

解決


よしろ  2002-12-03 01:16:04  No: 50774

VisualStudio6.0のSDK環境でタクスバーの何もないところのクリックを感知することは可能でしょうか?
マウスフックを使えばできそうなのですがいまいちよくわかりません。

アドバイスをよろしくお願いします。


みけにゃん  URL  2002-12-06 01:37:37  No: 50775

たぶんこれでいけると思います。
// ウィンドウプロシージャの変数定義部分におく
LPNMHDR lpnmhdr;

// タクスバーのクリックを感知
case WM_NOTIFY:
    lpnmhdr = (LPNMHDR)lParam;    // WndProcのLPARAMの値

    if(lpnmhdr->code == NM_CLICK && lpnmhdr->hwndFrom == hStatus){
        MessageBox(hWnd, "StatusBarがクリックされました", "TEST", MB_OK|MB_ICONINFORMATION);
    }

    break;


YuO  2002-12-06 03:12:44  No: 50776

StatusBar != TaskBarですよ。

えーっと,MSDNでTaskBarを調べるとStatus Areaの話ばっかですな。
Application Tool Barの機能を使うことになりますが,
これはあくまで自分が作ったAppBarの為のもの。

というわけで,フックを仕掛けてください。


よしろ  2002-12-06 22:36:37  No: 50777

みけにゃん様、YuO様、ありがとうございます。

フックを仕掛けようとしましたが何のフックでどのようなメッセージを処理すればよいのでしょうか?(WH_CALLWNDPROC、WH_MOUSE?)

初歩的な質問で申し訳ないのですが、よろしくお願いします。


みけにゃん  URL  2002-12-06 23:31:57  No: 50778

はぅ〜StatusBarと間違ってしまいました。>TaskBar
う〜んタスクバーのフックは分からないです。


YuO  2002-12-07 04:21:50  No: 50779

マウスメッセージが欲しいのですから,WH_MOUSEです。
処理するメッセージは,
クリックですからWM_LBUTTONDOWNとかWM_LBUTTONUPです。
#WM_LBUTTONCLICKが無いため,タスクトレイの動作がアプリによって異なる……。

あとは,TCM_HITTESTなんかも使うかな。


よしろ  2002-12-13 02:02:56  No: 50780

WM_LBUTTONUPでできました。
ちなみにTCM_HITTESTは何に使うのでしょうか?

YuO様、ありがとうございました。


YuO  2002-12-13 02:04:52  No: 50781

> ちなみにTCM_HITTESTは何に使うのでしょうか?

ボタンか否かを判別するのに使うかな,と思ったのですが。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加