▼ 宮さん
> if (wParam = WM_LBUTTONDBLCLK) then <---------1------左ダブルクリック
> begin
> GetClassName(PMOUSEHOOKSTRUCT(lParam)^.HWND,szClassName,SizeOf(szClassName));
> if lstrcmp(@szClassName[0], @LV_name[1]) = 0 then
> begin
> SpeedButton1Click(nil);
> exit; <-----------2---これで後へメッセージを渡さない。
> end;
> end;
> Result := CallNextHookEx(HookID, nCode, wParam, lParam);
> end;
これだと,ダブルクリックで本来の動作をしてしまうと思いますが.
しませんか? しないならそれでいいですけど.
明日(いや,もう今日ですが)試してみます.
マウスフック関数WH_MOUSEでは,マウスメッセージを目的のウィンドウに送られる
のを禁止するには,0以外の値を返す必要があるハズです.よく使用されるのは,
HS_SKIP(HC_SKIP(=2?)だったかな?)です.
SpeedButton1Click(nil);
Result := HC_SKIP; //0以外ならなんでも可
exit; <-----------2---これで後へメッセージを渡さない。
//これだけだと渡ってしまいます.
//このままではResult値が不定,つまり0な
//ので.Delphiでは値を代入していない値は0
end;
|