回答編集履歴

3

追記、改行部分を修正

2017/12/20 09:04

投稿

dodox86
dodox86

スコア9183

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

動作を確認したので更に追記

2017/12/20 09:03

投稿

dodox86
dodox86

スコア9183

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

回答が不適切なので追記

2017/12/20 09:00

投稿

dodox86
dodox86

スコア9183

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は入りません。この点、私の間違いでしたのでお詫びいたします。機会があれば回答の評価を下げてください。すみません。