メインウィンドウhwndFrame
には、子hwndChild
を持つ子がありhwndDescendant
ます。これらの 2 つの子には、非クライアント領域がありません。hwndDescendant
の領域の大部分を占めているhwndChild
ため、hwndChild
の単なる「境界」のように見えhwndDescendant
ます。この「境界」の幅は 4 ピクセルのみです。(ただし、 のサイズはhwndChild
これよりもはるかに大きい)。
WM_MOUSELEAVE
「hwndChild」を追跡したい。マウスをゆっくり動かすと、これでうまくいきます。hwndFrame
しかし、マウスを からへ、hwndDescendant
またはその逆に非常に速く動かした場合、hwndChild
を受信しなかったためWM_MOUSEMOVE
、どちらもWM_MOUSELEAVE
.
また、マウスがまたはhwndChild
のいずれかhwndFrame
に移動すると、 hwndDescendant
WM_MOUSELEAVE が生成されます。hwndChild
しかし、から移動するときに が生成されhwndDescendant
ないことを願っていますWM_MOUSELEAVE
。
hwndDescendant
のウィンドウ プロシージャをサブクラス化してこの問題を解決したくありませんhwndChild
。
SetCapture
方法は好ましくありません。この場合、この問題に対処できる最善の方法は何ですか?