当父窗口处于全屏模式时,为什么子窗口不显示?

时间:2019-05-15 03:13:02

标签: winapi

我有一个具有主窗口和子窗口以显示内容的应用程序。 当父窗口处于全屏模式并且尝试创建子窗口时,它会成功创建,但是在应用程序屏幕上看不到它。但是,如果我通过按PrtScn键捕获了桌面屏幕,或者如果我将鼠标移到任务栏上的应用程序图标上以查看微型应用程序屏幕,则可以看到该子窗口。

请查看此图片以更形象地显示 enter image description here

父窗口是使用

创建的
WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_OVERLAPPEDWINDOW | SW_MAXIMIZE

并使用

创建子窗口
WS_CHILD | WS_VISIBLE | WS_BORDER

子窗口已经设置为HWND_TOP。

我用相同的逻辑创建了一个简单的测试应用程序,但是在该测试应用程序上一切正常。

我不知道为什么它会在我的应用程序中发生。另一个注意事项是,父窗口和子窗口是在不同的线程上创建的。也许会影响它吗?

有人对此有经验吗?还是关于它为什么会发生的任何想法?

这是父窗口的全屏代码:

//show full-screen
        MONITORINFO mi = { sizeof(mi) };
        if (GetWindowPlacement(hWnd, &g_wpPrev) && GetMonitorInfo(MonitorFromWindow(hWnd, MONITOR_DEFAULTTOPRIMARY), &mi))
        {
            SetWindowLong(hWnd, GWL_STYLE, dwStyle & ~WS_OVERLAPPEDWINDOW);
            SetWindowPos(hWnd, NULL,
                mi.rcMonitor.left, mi.rcMonitor.top,
                mi.rcMonitor.right - mi.rcMonitor.left,
                mi.rcMonitor.bottom - mi.rcMonitor.top,
                SWP_FRAMECHANGED);
        }

0 个答案:

没有答案