あなたはlow-level mouse hookを使用することができます。
// Variable to store the hook handle
HHOOK miHook;
// This is the hook procedure
LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam) {
if(nCode == HC_ACTION) {
MSLLHOOKSTRUCT &msll = *(reinterpret_cast<MSLLHOOKSTRUCT*>(lParam)); // In there is more context if you need it
if(wParam == WM_LBUTTONDOWN) {
// Do your logic here
if(letsIgnoreThisClick) {
return -1; // This will make the click be ignored
}
}
}
return CallNextHookEx(miHook, nCode, wParam, lParam); // Important! Otherwise other mouse hooks may misbehave
}
// This is how you install the hook
SetWindowsHookEx(WH_MOUSE_LL, reinterpret_cast<HOOKPROC>(&LowLevelMouseProc), hInstance, 0);
// And this is how you would remove the hook again
UnhookWindowsHookEx(miHook);
このコード例のように、あるもちろん、しかし、あなたのニーズに調整する必要があり、個々の部品が右に配置する必要が使用することはできませんあなたのコード内の場所。
SetWindowsHookExの備考欄もお読みください。関数がある場所にDLLを作成する必要があります(メインコードから読み込むことができます)。私の例のhInstance
は、フックプロシージャを含むモジュールのインスタンスハンドルでなければなりません。また、フックが正しく機能するように、メッセージをポンピングする必要があります!
@bku_drytt私は十分に明確ではないことを申し訳ありません。私はWindowsがマウスクリックを無視できるようにする方法を知りたいだけです。私はプログラム方法を知っており、私は自分自身でプログラムを作ります。私はちょうど問題を解決するために出かける方法を知らない。 – CandyCreep
@ニッキーC私はそれが解決策であることは知っていますが、とにかくそのようなプログラムを手にすることは良いことです。それが他の状況で必要な場合は、これを行うための知識を持っていることも良いでしょう。 – CandyCreep