SysShadow 風格的窗口

遇到一個工程問題,mongo客戶端robo 3T出現一個陰影的問題。原因是程序中的這種窗口,被顯示出來了。

 

重現代碼:

 #define  WINDOW_TEXT_LENGTH 256

    HWND hd=GetDesktopWindow();        //得到桌面窗口
    hd=GetWindow(hd,GW_CHILD);        //得到屏幕上第一個子窗口
    char s[200]={0}, bufName[WINDOW_TEXT_LENGTH] = {0}, bufClass[WINDOW_TEXT_LENGTH] = {0};
    int num=1;
    while(hd!=NULL)                    //循環得到所有的子窗口
    {
        memset(bufName,0,WINDOW_TEXT_LENGTH);
        memset(bufClass,0,WINDOW_TEXT_LENGTH);

        ::GetWindowText(hd, bufName, WINDOW_TEXT_LENGTH);
        ::GetClassName(hd, bufClass, WINDOW_TEXT_LENGTH);

        if (stricmp(bufName, "robo3t") == 0){
            if (stricmp(bufClass, "Qt5QWindowPopupDropShadowSaveBits") == 0)
            {
                ::ShowWindow(hd, SW_SHOW);  // ==> 顯示一個陰影;
                break;
            }
        }

#if 0
        DWORD dwPid = 0;  
        GetWindowThreadProcessId(hd, &dwPid);
        if (dwPid == nCmpProcess){

            if(strstr(s, "遠程桌面連接") != NULL ){
                break;
            }
        }
#endif
        //    cout<<num++<<": "<<s<<endl;
        hd=GetNextWindow(hd,GW_HWNDNEXT);
    }

如何實現窗口陰影效果:

https://blog.csdn.net/QQ384697384/article/details/18775823

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