1

我正在调用使用 GetWindowLog 属性查询窗口的扩展窗口样式,并且在许多情况下它返回的值未在 msdn 中记录。

特别是 0x00000800L 和 0x00000100L 或两者的组合。有没有人有关于这些值的信息,或者比 msdn 网站上记录的更完整的列表?

4

3 回答 3

1

我在寻找答案时遇到了这个线程,为什么当 Microsoft Word“消失”一个窗口时这个值会改变。我维护了一个跟踪 HWND 值的应用程序,以便进行应用程序共享。这很好用,但 Microsoft Office 应用程序经常以不同寻常的方式处理这些问题。在这种特殊情况下,我发现如果您在 Microsoft Word 2013 中执行以下操作:

  1. 在单独的窗口中打开两个新文档。
  2. 保存两个窗口的 HWND 值。
  3. 关闭两个窗口之一。

当使用 IsWindow、IsVisible 等 Windows 函数询问时,这两个 HWND 值看起来都是正常的、仍然可见等。我无法找到其中一个窗口已关闭的方法——除了这个未记录的 dwExStyle 值. 0x800 将在仍然可见的窗口中“打开”,在不再可见的窗口中“关闭”。

(顺便说一句,我知道你不是“应该”以这种方式保存 HWND 值 - 但尝试跟踪窗口以进行共享而不保存此值 - 不是那么容易!)

于 2017-01-13T14:39:40.307 回答
0

Jeremy,这只是 GetWindowInfo 的一个错误(适用于 Win98 之后的任何操作系统:2k、XP、Vista、Win7)。

请参阅http://rsdn.ru/forum/winapi/3362548.all.aspx(“WINDOWINFO.dwExStyle错误”)

从那里尝试小型测试仪:http: //files.rsdn.ru/42164/wi_exstyle.zip

克罗

于 2011-03-27T10:46:41.800 回答
0

由于 0x00000100L 列在“扩展窗口样式”页面上,因此我有点不清楚您是指普通样式还是扩展样式,因此我将同时描述两者。

风格:

  • 对话框和旧(user32)控件
    • 0xFFFF 用于控制/对话框特定样式
  • 常用控制:
    • 0x00FF 通常由共享的公共控件样式(CCS_NORESIZE、CCS_TOP 等)使用
    • 0xFF00 用于控制特定样式,对于工具栏,您将拥有 TBSTYLE_LIST、TBSTYLE_TRANSPARENT 等

外型:

  • 0x00000100L=WS_EX_WINDOWEDGE
  • 0x00000800L=不知道,可能是未记录的标志(编辑:ReactOS 有/有 0x00000800 作为WS_EX_MAKEVISIBLEWHENUNGHOSTED,这并不意味着它在 Windows 上具有相同的含义,因为 ReactOS 不是 100% 与 Windows 兼容)
于 2011-01-14T00:41:03.010 回答