在一个主窗口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
方法不可取。在这种情况下,我可以处理这个问题的最佳方法是什么?