全屏时WS_CLIPCHILDREN不起作用

时间:2010-08-27 17:32:15

标签: c++ winapi fullscreen

我创建了一个主窗口:

if (!fullscreen)
{
    wStyle = WS_OVERLAPPED | WS_BORDER | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_CLIPCHILDREN;
    wExStyle = WS_EX_TOPMOST;
}
else
{
    wStyle = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN;
    wExStyle = WS_EX_TOPMOST;
}

我还创建了一个子窗口运行时:

wStyle = WS_VISIBLE | WS_POPUP | WS_CHILD;
wExStyle = WS_EX_TOPMOST;

当我不在全屏时,一切都很顺利。 (即子窗口很好地显示在父窗口的顶部。)

但是,当我处于全屏模式时,父窗口会在子窗口上绘制,这会导致可怕的闪烁。

如何设置主窗口和子窗口的属性,以便显示子窗口,即使在全屏模式下也是如此?

提前感谢您的所有答案。

2 个答案:

答案 0 :(得分:2)

那些样式标志组合无效。子窗口不能是弹出窗口,也不能是最顶层的窗口。不知道可能产生什么样的副作用,从未试图故意弄错。

坚持这一点可能具有教育意义,但不太实际。您是否考虑过使用类库来处理这些糟糕的事情?

答案 1 :(得分:2)

WS_POPUP不能与WS_CHILD一起使用。但这不是正面的原因。