gpt4 book ai didi

c++ - 可靠地识别任何窗口的客户区

转载 作者:行者123 更新时间:2023-11-28 06:47:15 24 4
gpt4 key购买 nike

我正在开发一个程序,该程序将复制并扩展 Aero Snap 的功能。

Aero Snap 恢复最大化窗口,如果用户“捕获”它的标题栏,我很难识别这个 Action 。

给定屏幕坐标中的光标位置,我如何检查该位置是否在窗口的标题栏内?我对 Win32 API 不是很在行,也找不到在复杂情况下可靠工作的方法,例如:

example for a difficult title bar

请注意 chrome 插入标题栏的选项卡。 Office 对快速启动菜单做了类似的事情。

最佳答案

标题栏命中是通过消息“非客户端”消息 - 即不是客户端(或内部)窗口的窗口区域。

WM_NCLBUTTONDOWN 可能是您要捕获的消息。

您可能还想设置一个 window hook 来 Hook 鼠标消息,如果它是您想要的 NC 消息,您可以按照自己的方式处理它,如果不是,则将其传递到消息链。

编辑:如果 Chrome 使用 DwmExtendFrameIntoClientArea 调用来绘制标签,那么您将需要使用 WM_NCHITTEST。

关于c++ - 可靠地识别任何窗口的客户区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24738799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com