win10 在桌面图标下显示窗体(C++)

直接上代码,只需要将窗体的Parent设置为这个函数的返回值即可。

HWND FindDTWindow()
{
    HWND hWnd = ::FindWindow(_T("Progman"), _T("Program Manager"));
    DWORD dResult = 0;

    SendMessageTimeout(hWnd,
        0x052C,
        0,
        NULL,
        SMTO_NORMAL,
        1000,
        &dResult);

    HWND hwndWorkW = NULL;
    do 
    {
        hwndWorkW = ::FindWindowEx(NULL, hwndWorkW, L"WorkerW", NULL);
        if (NULL == hwndWorkW)
        {
            continue;
        }

        HWND hView = ::FindWindowEx(hwndWorkW, NULL, L"SHELLDLL_DefView", NULL);
        if (NULL == hView)
        {
            continue;
        }

        HWND h = ::FindWindowEx(NULL, hwndWorkW, L"WorkerW", NULL);
        while (NULL != h)
        {
            SendMessage(h, WM_CLOSE, 0, 0);
            h = ::FindWindowEx(NULL, hwndWorkW, L"WorkerW", NULL);
        }
        break;

    } while (true);

    return hWnd;

}

你可能感兴趣的:(C++,MFC)