忽略 WindowFromPoint() 中的 HWND

Tur*_*ter 0 c++ winapi docking panes

我正在用 win32 c++ 创建一个可停靠窗口系统。为了获得新窗口拖动位置的实时反馈,我创建了一个特殊的调试窗口,该窗口仅在拖动过程中出现并显示它将停靠的位置。为了找出将停靠到哪个窗格,我需要考虑重叠的窗口并找到最上面的窗口。为此,我调用 WindowFromPoint(x, y),它会立即找到鼠标下方的 HWND。这会导致问题,因为当显示调试窗口时,它被 WindowFromPoint 捕获,我想忽略它。我附上了一张照片。在此输入图像描述

如果有人对此计划有其他建议,我很高兴听到。我想保留一些窗口顺序列表并在每次新窗口获得焦点时进行跟踪,但这似乎也很令人头痛......

Tur*_*ter 5

好,我知道了!我的想法是正确的,但我没有意识到在窗口过程中返回 0 的全局解决方案是一个坏主意。这是正确的返回:

case WM_NCHITTEST:              
        return HTTRANSPARENT;       
Run Code Online (Sandbox Code Playgroud)

感谢这个线程:Find all windows under a point