VisualStudio6.0のSDK環境でタクスバーの何もないところのクリックを感知することは可能でしょうか?
マウスフックを使えばできそうなのですがいまいちよくわかりません。
アドバイスをよろしくお願いします。
たぶんこれでいけると思います。
// ウィンドウプロシージャの変数定義部分におく
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;
StatusBar != TaskBarですよ。
えーっと,MSDNでTaskBarを調べるとStatus Areaの話ばっかですな。
Application Tool Barの機能を使うことになりますが,
これはあくまで自分が作ったAppBarの為のもの。
というわけで,フックを仕掛けてください。
みけにゃん様、YuO様、ありがとうございます。
フックを仕掛けようとしましたが何のフックでどのようなメッセージを処理すればよいのでしょうか?(WH_CALLWNDPROC、WH_MOUSE?)
初歩的な質問で申し訳ないのですが、よろしくお願いします。
はぅ〜StatusBarと間違ってしまいました。>TaskBar
う〜んタスクバーのフックは分からないです。
マウスメッセージが欲しいのですから,WH_MOUSEです。
処理するメッセージは,
クリックですからWM_LBUTTONDOWNとかWM_LBUTTONUPです。
#WM_LBUTTONCLICKが無いため,タスクトレイの動作がアプリによって異なる……。
あとは,TCM_HITTESTなんかも使うかな。
WM_LBUTTONUPでできました。
ちなみにTCM_HITTESTは何に使うのでしょうか?
YuO様、ありがとうございました。
> ちなみにTCM_HITTESTは何に使うのでしょうか?
ボタンか否かを判別するのに使うかな,と思ったのですが。
ツイート | ![]() |