WS_CLIPSIBLINGS样式已自动添加

时间:2019-06-05 18:01:58

标签: windows winapi

我使用以下窗口样式创建了窗口:   WS_CLIPCHILDREN | WS_POPUP | WS_BORDER | WS_SIZEBOX | WS_VISIBLE

但是由于未知原因,会自动添加 WS_CLIPSIBLINGS 样式。

有人知道原因吗?

示例代码:

hWnd = CreateWindowExW(0, szWindowClass, szTitle, WS_CLIPCHILDREN | WS_POPUP | WS_BORDER | WS_SIZEBOX | WS_VISIBLE, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

1 个答案:

答案 0 :(得分:0)

MSDN中仅提及子窗口。

  

使子窗口彼此相对;也就是说,当一个特定的   子窗口收到WS_CLIPSIBLINGS样式的WM_PAINT消息   将所有其他重叠的子窗口裁剪到   子窗口进行更新。如果未指定WS_CLIPSIBLINGS,并且   在客户端中进行绘制时,子窗口可能重叠   子窗口的区域,以在子窗口的客户区域内绘制   相邻的子窗口。

实际上,所有重叠窗口和弹出式窗口均具有WS_CLIPSIBLINGS属性。也就是说,您无法摆脱WS_CLIPSIBLINGS属性并绘制重叠的兄弟窗口。

如果只是子窗口,则可以自己添加WS_CLIPSIBLINGS

1

添加WS_CLIPSIBLINGS

2

重画后