来自GetWindowLong和GetWindowInfo的未知扩展窗口样式值

时间:2011-01-13 22:46:24

标签: winapi getwindowlong

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

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

3 个答案:

答案 0 :(得分:1)

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

  1. 在不同的窗口中打开两个新文档。
  2. 保存两个窗口的HWND值。
  3. 关闭两个窗口中的一个。
  4. 当使用IsWindow,IsVisible等查询Windows函数时,两个HWND值都会显示为正常,仍然可见,等等。我无法判断其中一个窗口是否已关闭 - 除了这个未记录的dwExStyle值。 0x800将在' on'在窗口中仍然可见,并且“关闭”#39;在窗口中不再可见。

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

答案 1 :(得分:0)

由于0x00000100L在Extended Window Styles页面上列出,如果你的意思是正常或扩展的风格,我有点不清楚,所以我将描述两者。

风格:

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

扩展风格:

  • 0x00000100L = WS_EX_WINDOWEDGE
  • 0x00000800L =不知道,未记录的标志可能(编辑:ReactOS已经/有0x00000800为WS_EX_MAKEVISIBLEWHENUNGHOSTED,这并不意味着它在Windows上具有相同的含义,因为ReactOS与Windows不是100%兼容)

答案 2 :(得分: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

煤油