单击应用程序时,Windows如何确定向哪个HWND发送WM_LBUTTONDOWN消息?

当我单击某个应用程序的窗口-不是前台窗口时,WM_LBUTTONDOWN消息将发送到该应用程序的窗口之一。 我的问题是-Windows如何确定将消息发送到哪个窗口? 我最初的假设是Windows找到两个窗口: -包含其区域内的鼠标坐标 -具有最大的Z阶

这个假设是错误的-我看到一种情况: -WM_LBUTTONDOWN消息发送到子窗口 -有一个窗口的Z顺序比收到WM_LBUTTONDOWN的窗口大

例子:

  • Here, I'm clicking on the "Open Security Configuration" button: enter image description here

和WM_LBUTTONDOWN发送到具有HWND 0x00040678的按钮,正如我期望的那样:

enter image description here

  • 在这里,我点击“游览”:

enter image description here

但是WM_LBUTTONDOWN已发送到HWND 0x0004070A,在这里我假设它已发送到0x00050678 :(根据其样式,这是一个不透明的窗口)

enter image description here

enter image description here

那么,Windows应用的真正逻辑是什么?

谢谢!