我使用以下窗口样式创建了窗口: 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);
答案 0 :(得分:0)
MSDN中仅提及子窗口。
使子窗口彼此相对;也就是说,当一个特定的 子窗口收到WS_CLIPSIBLINGS样式的WM_PAINT消息 将所有其他重叠的子窗口裁剪到 子窗口进行更新。如果未指定WS_CLIPSIBLINGS,并且 在客户端中进行绘制时,子窗口可能重叠 子窗口的区域,以在子窗口的客户区域内绘制 相邻的子窗口。
实际上,所有重叠窗口和弹出式窗口均具有WS_CLIPSIBLINGS
属性。也就是说,您无法摆脱WS_CLIPSIBLINGS
属性并绘制重叠的兄弟窗口。
如果只是子窗口,则可以自己添加WS_CLIPSIBLINGS
。
添加WS_CLIPSIBLINGS
重画后