通知
すべてクリア
Topic starter
2008年9月8日 8:26 PM
Windows Vistaで、タスクトレーの時計を左クリックしたときに
自分の作ったアナログ時計を表示しようとしています。
以下のように行いましたが、マウスのイベントがキャプチャできません。
1.時計(TrayClockWClass)のウィンドウハンドル hwnd を取得
2.id = GetWindowThreadProcessId(hwnd);
SetWindowsHookEx(WH_CALLWNDPROC, callback, g_hIns, id);
を行い、
このウィンドウに対してフックして、適当なメッセージをポストしたタイミングで
callback関数内でhwndをサブクラス化します。
3.2でサブクラス化したプロシジャにWM_LBUTTONDOWNが来ると思ったのですが、
WM_NCHITTESTは来ますが、WM_LBUTTONDOWNが来ません。
callback にも来ていません。
SPY++というツールで調べてみましたが、やはりWM_NCHITTESTしか来ていません。
ウィンドウの上でマウスを動かしたりすると、そのウィンドウの
プロシジャでWM_MOUSEMOVEなどを取得できると思ったのですが、
何か他にすることがあるのでしょうか?
また、TClockを起動しているとWM_MOUSEMOVEが来ます。
Topic starter
2008年9月9日 8:09 AM
マウスもグローバルフックすることで解決させました。