我有2个子窗口A,B(都不是static的),其中B在A内部,
A先显示,B后显示,也看得出B在A上面。
但是WindowFromPoint对于B内的点却返回A的句柄。另外有人说WindowFromPoint返回的是点所在window的
第一个非子窗口类型的祖先,但是WindowFromPoint
对于A显示的点却返回A的句柄(A是个子窗口)其实我只是想知道显示某个点的window的handle,不管这个
window是什么类型的。大家说说看吧怎么回事啊

解决方案 »

  1.   

    如果是子窗口用 ChildWindowFromPoint 试试看
      

  2.   

    经过不懈的努力,我发现windows是按照创建时间后序排列点的:
    (对于子窗口)
    比如top下有A B 两个子窗口,C又是A的子窗口,而D是B的子窗口
    括号内是创建先后次序 
      top(1)
      A(4)   B(2) 
      
      C(5)   D(3) 如果点P在A和B里,windows会认为是B;如果P又在D里,则是D现在的问题是后创建的才是看到的(重叠部分),怎么知道呢?To : flyelf(空谷清音)
    可以To: BLsoft(網龍ζ龍活) 
    先用ClientToScreen的To holyeagle(一杯清茶) :
    得到的还是自己的句柄
    (这里先用ScreenToClient,也就是原来的client坐标)