You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WM_WINDOWPOSCHANGED消息中0x10000000标志代表什么?

关于WM_WINDOWPOSCHANGED与WINDOWPOS未公开标志的问题

Windows官方API文档和头文件并未涵盖WM_WINDOWPOSCHANGED消息及WINDOWPOS结构的所有可能标志,目前整理到的标志如下:

// WINDOWPOS 官方文档已定义的标志
SWP_NOSIZE          0x0001          // 不改变窗口大小
SWP_NOMOVE          0x0002          // 不改变窗口位置
SWP_NOZORDER        0x0004          // 不改变窗口Z序
SWP_NOREDRAW        0x0008          // 不重绘窗口
SWP_NOACTIVATE      0x0010          // 不激活窗口
SWP_FRAMECHANGED    0x0020 = SWP_DRAWFRAME /* 窗口边框已更改:发送WM_NCCALCSIZE消息 */
SWP_SHOWWINDOW      0x0040          // 显示窗口
SWP_HIDEWINDOW      0x0080          // 隐藏窗口
SWP_NOCOPYBITS      0x0100          // 不复制窗口内容
SWP_NOOWNERZORDER   0x0200 = SWP_NOREPOSITION /* 不调整所有者窗口的Z序 */
SWP_NOSENDCHANGING  0x0400          /* 不发送WM_WINDOWPOSCHANGING消息 */

// 来自其他非官方来源的标志
SWP_NOCLIENTSIZE    0x0800 // Winehq 源码:不改变客户区大小
SWP_NOCLIENTMOVE    0x1000 // Winehq 源码:不改变客户区位置
SWP_DEFERERASE      0x2000 // SetWindowPos函数文档:推迟擦除操作
SWP_ASYNCWINDOWPOS  0x4000 // SetWindowPos函数文档:异步执行窗口位置变更
SWP_STATECHANGED    0x8000 // Winehq 源码:窗口状态已更改

// 未知未公开标志
????????????????    0x10000000 

我的程序启动时收到的标志值为268441667(即0x10001843),拆解后如下:

0x10001843
    0x0001 SWP_NOSIZE                // 不改变窗口大小
    0x0002 SWP_NOMOVE                // 不改变窗口位置
    0x0040 SWP_SHOWWINDOW            // 显示窗口
    0x0800 SWP_NOCLIENTSIZE /* 客户区未调整大小 */  /* 内部标志 */
    0x1000 SWP_NOCLIENTMOVE /* 客户区未移动位置 */  /* 内部标志 */
0x10000000 (未公开,含义未知)

由于不清楚0x10000000这个未公开标志的具体含义,因此无法在程序中依赖该标志的行为。

内容的提问来源于stack exchange,提问作者Ryuushi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 21:09:50