在一个主窗口hwndFrame中,它有一个hwndChild有一个孩子的孩子hwndDescendant。这两个孩子没有非客户区。hwndDescendant占据了 的大部分区域hwndChild,所以hwndChild看起来只是 的一个“边界” hwndDescendant。这个“边界”的宽度只有 4 个像素。(但大小hwndChild比这大得多)。
我想跟踪WM_MOUSELEAVE“hwndChild”。如果我慢慢移动鼠标,这很好。hwndFrame但是,如果我从to快速移动鼠标,hwndDescendant反之亦然,hwndChild没有收到WM_MOUSEMOVE,因此也没有WM_MOUSELEAVE。
此外,当鼠标移动hwndChild到其中一个hwndFrame或hwndDescendant将生成 WM_MOUSELEAVE。但我希望当从移动hwndChild到hwndDescendant不生成WM_MOUSELEAVE.
我不想通过子类化的窗口过程来解决这个问题hwndDescendant,因为如果hwndChild有很多孩子,这不是一个好方法。
SetCapture方法不可取。在这种情况下,我可以处理这个问题的最佳方法是什么?