HwndHostを含むユーザーコントロールを備えたWPFアプリがあります。HwndHostは次のように作成されます。
hwndHost = CreateWindowEx(0, "static", "",
WS_CHILD | WS_VISIBLE,
0, 0,
hostHeight, hostWidth,
hwndParent.Handle,
(IntPtr)HOST_ID,
IntPtr.Zero,
0);
hwndControl = CreateWindowEx(0, "Static", "",
WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN
,
0, 0,
hostHeight, hostWidth,
hwndHost,
(IntPtr)PICTUREBOX_ID,
IntPtr.Zero,
0);
次に、HwndSourceHookを使用してメッセージポンプに接続すると、大量のメッセージが送信されます。
必要なもの、つまりWM_MOUSEMOVE、WM_MOUSEHOVER、WM_LBUTTONDOWN、およびWM_LBUTTONUPを除きます。
また、OnMouseLeftButtonDownイベントは、メインウィンドウまたはコントロールのWPFコードでは発生しません。これは、Windowsがイベントをトラップして破棄しているためだと思います。
WIN32ウィンドウメッセージを使用するかどうかにかかわらず、これらをどのように処理できるかを知っている人はいますか?