回答編集履歴
3
追記、改行部分を修正
test
CHANGED
@@ -5,6 +5,8 @@
|
|
5
5
|
`WM_LBUTTONDOWN`はWindowメッセージを示す値なのでフック用プロシージャのnCodeに入るはずです。
|
6
6
|
|
7
7
|
WM_LBUTTONDOWNメッセージの場合、wParam は仮想キーコード、lParamはマウスのX,Y座標です。
|
8
|
+
|
9
|
+
**※※追記していますが、これは私の間違いです。※※**
|
8
10
|
|
9
11
|
|
10
12
|
|
@@ -18,7 +20,7 @@
|
|
18
20
|
|
19
21
|
追記(2017/12/20)
|
20
22
|
|
21
|
-
+評価をいただいていましたが、コメントでご指摘のようにマウスフック用のプロシージャのnCodeにはWM_LBUTTONDOWNは入りません。この点、私の間違いでしたのでお詫びいたします。機会があれば回答の評価を下げてください。すみません。
|
23
|
+
+評価をいただいていましたが、コメントでご指摘のようにマウスフック用のプロシージャのnCodeにはWM_LBUTTONDOWNは入りません。質問者様のコードで正しいです。この点、私の間違いでしたのでお詫びいたします。機会があれば回答の評価を下げてください。すみません。
|
22
24
|
|
23
25
|
|
24
26
|
|
@@ -40,9 +42,7 @@
|
|
40
42
|
|
41
43
|
ただ、左クリックでは`WM_LBUTTONDOWN`、右クリックでは`WM_RBUTTONDOWN`の時に期待するように呼ばれています。WM_MOUSEMOVEはマウスの操作にもよりますが、左クリックでは
|
42
44
|
|
43
|
-
WM_LBUTTONDOWN --> WM_MOUSEMOVE --> WM_MOUSEMOVE とのように複数回呼ばれました。
|
45
|
+
WM_LBUTTONDOWN --> WM_MOUSEMOVE --> WM_MOUSEMOVE とのように複数回呼ばれました。これはWindows 7(64ビット) と Windows 10(64ビット)のどちらでも同じでした。
|
44
|
-
|
45
|
-
これはWindows 7(64ビット) と Windows 10(64ビット)のどちらでも同じでした。
|
46
46
|
|
47
47
|
(プログラムは Visual Studio 2017, .NET Framework 4.6.1で作成)
|
48
48
|
|
2
動作を確認したので更に追記
test
CHANGED
@@ -19,3 +19,33 @@
|
|
19
19
|
追記(2017/12/20)
|
20
20
|
|
21
21
|
+評価をいただいていましたが、コメントでご指摘のようにマウスフック用のプロシージャのnCodeにはWM_LBUTTONDOWNは入りません。この点、私の間違いでしたのでお詫びいたします。機会があれば回答の評価を下げてください。すみません。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
---
|
26
|
+
|
27
|
+
追記#2(2017/12/20) 動作を確認しました。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
私の先の回答、フック用プロシージャのwParamにWM_LBUTTONDOWNが入る件については間違った指摘を載せてしまいすみません。申し訳なかったので、こちらでも動作確認してみました。質問者様がご提示のコードは全部ではないと思いましたので、以下のマイクロソフトのサンプルコードを流用して試しました。
|
32
|
+
|
33
|
+
[Visual C# .NET では、ウィンドウ フックを設定する方法](https://support.microsoft.com/ja-jp/help/318804/how-to-set-a-windows-hook-in-visual-c--net)
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
結果、マウスを動かさなくても(マウスカーソルを動かさない)、WM_MOUSEMOVE時にプロシージャが呼ばれました。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
ただ、左クリックでは`WM_LBUTTONDOWN`、右クリックでは`WM_RBUTTONDOWN`の時に期待するように呼ばれています。WM_MOUSEMOVEはマウスの操作にもよりますが、左クリックでは
|
42
|
+
|
43
|
+
WM_LBUTTONDOWN --> WM_MOUSEMOVE --> WM_MOUSEMOVE とのように複数回呼ばれました。
|
44
|
+
|
45
|
+
これはWindows 7(64ビット) と Windows 10(64ビット)のどちらでも同じでした。
|
46
|
+
|
47
|
+
(プログラムは Visual Studio 2017, .NET Framework 4.6.1で作成)
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
質問者様のケースでも、WM_MOUSEMOVEもあるものの、WM_LBUTTONDOWNも受信できているのではないでしょうか。
|
1
回答が不適切なので追記
test
CHANGED
@@ -11,3 +11,11 @@
|
|
11
11
|
詳細はMSDNをご覧ください。
|
12
12
|
|
13
13
|
[WM_LBUTTONDOWN message](https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms645607(v=vs.85).aspx)
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
---
|
18
|
+
|
19
|
+
追記(2017/12/20)
|
20
|
+
|
21
|
+
+評価をいただいていましたが、コメントでご指摘のようにマウスフック用のプロシージャのnCodeにはWM_LBUTTONDOWNは入りません。この点、私の間違いでしたのでお詫びいたします。機会があれば回答の評価を下げてください。すみません。
|