あれ?Spy++で見ると、
[D3DWindower]
<001684> 00060516 S WM_SETCURSOR hwnd:00060516 nHittest:HTCLIENT wMouseMsg:WM_LBUTTONDOWN <001685> 00060516 R WM_SETCURSOR fHaltProcessing:False <001686> 00060516 P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:325 yPos:413 ... <001705> 00060516 S WM_SETCURSOR hwnd:00060516 nHittest:HTCLIENT wMouseMsg:WM_LBUTTONUP <001706> 00060516 R WM_SETCURSOR fHaltProcessing:False <001707> 00060516 P WM_LBUTTONUP fwKeys:0000 xPos:325 yPos:413
なのに、
[DxWnd]
<000139> 000704E8 S WM_MOUSEACTIVATE hwndTopLevel:000704E8 nHittest:HTCAPTION uMsg:WM_LBUTTONDOWN <000140> 000704E8 R WM_MOUSEACTIVATE fuActivate:MA_NOACTIVATE <000141> 000704E8 S WM_SETCURSOR hwnd:000704E8 nHittest:HTCAPTION wMouseMsg:WM_LBUTTONDOWN <000142> 000704E8 R WM_SETCURSOR fHaltProcessing:False <000143> 000704E8 P WM_NCLBUTTONDOWN nHittest:HTCAPTION xPos:407 yPos:33 ... <000162> 000704E8 P WM_LBUTTONUP fwKeys:0000 xPos:357 yPos:-17
だぞ??おぃ、WM_LBUTTONDOWNはどこいったんだ!?
D3DWindowerの「特殊キー」云々はまた別の問題か?無効化するとキーボード操作が届かない。
んー。WM_LBUTTONDOWNに反応して「Space」を生成しているのかなぁ...。
非クライアントエリアのマウスメッセージを見ると、WM_NCLBUTTONDOWNの内容としては、非クライアント領域、ここではタイトルバーをクリックしたと思われているようだ。
WM_ACTIVATEをreceiveする前にWM_SETCURSORをSendMessageしているのがまずいのかもしれない。これどーすればいーんだろう...。雑な対処するなら、WM_LBUTTONUPを受けた時にさくっとWM_LBUTTONDOWNを生成して飛ばせば、上記のログ的には動きそうだが... それだとキーダウンで保持している場合をシミュレートできないしなぁ...。