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;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章