第一個Api: 得到Windows 的任務欄是否隱藏
第二個Api: Windows 任務欄的高度(Height)此兩個Api在 Win2000下和 Win98 下都能正常使用
請注明參數類型,說明,返回值.
謝謝!

解决方案 »

  1.   

    急急急,我不是做C的, 對Api不熟,還請大鳥們相助,測試通過立刻給分!
      

  2.   

    1. 不是很清楚你的问题,如果是要知道任务栏是否会自动隐藏,用
    APPBARDATA abdata;
    abdata.cbSize = sizeof(APPBARDATA); UINT nStatus = SHAppBarMessage(ABM_GETSTATE, &abdata);
    if(nStatus & ABS_AUTOHIDE)
    {
    AfxMessageBox("taskbar is autohide");
    }
    如果要知道任务栏是否隐藏了,用
    APPBARDATA abdata;
    abdata.cbSize = sizeof(APPBARDATA);
    abdata.hWnd = ::FindWindow("Shell_TrayWnd", NULL);
    SHAppBarMessage(ABM_GETTASKBARPOS, &abdata);
    CRect rcTaskbar;
    ::GetWindowRect(abdata.hWnd, rcTaskbar);
    if(rcTaskbar != abdata.rc)
    AfxMessageBox("hidden");
    2. 上面已经获得任务栏的矩形了(abdata.rc),取得高度自然没问题
    APPBARDATA abdata;
    abdata.cbSize = sizeof(APPBARDATA);
    abdata.hWnd = ::FindWindow("Shell_TrayWnd", NULL);
    SHAppBarMessage(ABM_GETTASKBARPOS, &abdata);
    int nHeight = abdata.rc.bottom - abdata.rc.top;用到的api主要是SHAppBarMessage,根据参数不同可以取得各种信息,更具体的信息自己查msdn