我正在开发一个将复制的程序,然后扩展Aero Snap的功能。
如果用户“抓住”它的标题栏,Aero Snap会恢复最大化的窗口,而我在识别此操作时遇到困难。
给定屏幕坐标中的光标位置,我如何检查位置是否在窗口的标题栏内?我在Win32 API中并不是真正的家,并且无法找到适用于复杂场景的方法,例如:
请注意,chrome会在标题栏中插入标签。 Office使用快速启动菜单执行类似操作。
答案 0 :(得分:1)
标题栏点击是通过消息"非客户"消息 - 即不是客户端(或内部)窗口的窗口区域。
WM_NCLBUTTONDOWN可能是您想要捕获的消息。
您也可能想要设置一个window hook来挂钩鼠标消息,如果它是您想要的NC消息,您可以按照自己的方式处理它,如果不是 - 将其传递给消息链。
编辑:如果Chrome正在使用DwmExtendFrameIntoClientArea调用来绘制标签,那么您将需要使用WM_NCHITTEST。