【发布时间】:2019-03-19 07:48:29
【问题描述】:
我希望我的程序能够可靠地确定一个窗口(给定它的句柄)是否具有常规的 Windows 样式标题栏(如 Windows 资源管理器、控制面板和大多数桌面应用程序)或自定义标题栏(谷歌浏览器、Visual Studio、 Spotify,存储应用程序)。
GWL_STYLE或GWL_EXSTYLE中是否有特定的标志,或者有其他方法可以检查标题栏样式?
【问题讨论】:
-
有 WS_CAPTION 标志是 windows 样式位的一部分(由 GWL_STYLE 支持)),但这不会告诉您窗口是否执行自定义的非客户端操作。我怀疑有什么方法可以可靠地知道一个窗口有一个纯粹的标准标题栏(但很容易知道没有)。
-
是的,例如,Visual Studio 2017 设置了
WS_CAPTION标志,它看起来仍然与其他窗口不同。 -
可能并不容易。没有样式会表明这一点。阅读具有这种标题栏的程序的源代码,了解他们是如何做到的
-
您需要这些信息做什么?对我来说闻起来像是 XY 问题。
-
您是否会考虑一个程序,它绘制自己的标题栏,看起来与 Windows 的标题栏一模一样,一个普通的标题栏?如果是,那么您能够做到的唯一方法是从另一个窗口中读取像素并实施一种方法来确定它们是否确实看起来像一个;-)