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