트레이 영역 구하는 함수 - GetTrayWndRect

개발 2007. 8. 12. 00:11

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

윈도우의 트레이 영역을 구하는 함수이다.
윈도우가 트레이로 최소화 될때 DrawAnimatedRects(m_hWnd, IDANI_CAPTION, rcFrom, rcTo); 함수를 이용하면 최소화 되는 것처럼 트레이 영역으로 이동하는 것을 볼 수 있다.



void GetTrayWndRect(RECT *pRect)
{
    HWND hwndTaskBar=::FindWindow(_T("Shell_TrayWnd"), NULL);
    if (hwndTaskBar){
        HWND hwndTray=::FindWindowEx(hwndTaskBar, NULL, _T("TrayNotifyWnd"), NULL);
        if (hwndTray)
            ::GetWindowRect(hwndTray, pRect);
        else
       {    //tray부분을 못찾으면 task바의 구석탱이를 그렇다고 믿게 하자.
            ::GetWindowRect(hwndTaskBar, pRect);
            pRect->left=pRect->right-20;
            pRect->top=pRect->bottom-20;
        }
    }
    else
    {   //task바를 못찾으면 그냥 화면 하단부
        int nWidth = GetSystemMetrics(SM_CXSCREEN);
        int nHeight = GetSystemMetrics(SM_CYSCREEN);
        SetRect(pRect, nWidth-40, nHeight-20, nWidth, nHeight);
    }
}


: