创建窗口非WIN7 AERO模式下窗口被遮罩出有关问题

创建窗口非WIN7 AERO模式下窗口被遮罩出问题


    HINSTANCE               hInstance(AfxGetInstanceHandle());
    WNDCLASS                wc;
    wc.cbClsExtra           = 0;
    wc.cbWndExtra           = 0;
    wc.hbrBackground        = (HBRUSH)GetStockObject(BLACK_BRUSH);
    wc.hCursor              = LoadCursor(NULL,IDC_ARROW);
    wc.hIcon                = LoadIcon(NULL,IDI_APPLICATION);
    wc.hInstance            = hInstance;
    wc.lpfnWndProc          = WinProc;
    wc.lpszClassName        = L"FakeWnd";
    wc.lpszMenuName         = NULL;
    wc.style                = CS_HREDRAW | CS_VREDRAW | CS_NOCLOSE;
    RegisterClass(&wc);
    m_wndParent             = CreateWindow(L"FakeWnd", L"", WS_OVERLAPPEDWINDOW, 0, 0, 320, 240, ::GetDesktopWindow(), NULL, hInstance, NULL);
    if (m_wndParent == NULL)return wlet(FALSE, L"CreateWindow() failed.");
    ::SetWindowLong(m_wndParent, GWL_STYLE, (GetWindowLong(m_wndParent, GWL_STYLE) & (~(WS_SYSMENU | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_THICKFRAME | WS_BORDER))) | WS_DLGFRAME);
    ::SetWindowLong(m_wndParent, GWL_EXSTYLE, GetWindowLong(m_wndParent, GWL_EXSTYLE) | WS_EX_TOOLWINDOW);
    return TRUE;



我只要把这个窗口隐藏或者用其他图片程序覆盖后 我截图这个窗口就回出问题,也就是我看到时什么样 截图就是什么样的。
为什么会这样,WIN7 AERO 模式下没问题,如果我吧AERO 关闭就出这个问题了

我哪儿参数没设置对吗?

------解决思路----------------------
应该是你的程序没有正确处理WM_PAINT消息吧。
另外这个创建过程很奇怪,没有必要创建了窗口再SetWindowLong,你可以直接在CreateWindow时指定Style和StyleEx啊。不用那个WS_OVERLAPPEDWINDOW就行了。