要知道,任务条可以隐藏,可以在屏幕的任何一边!!

解决方案 »

  1.   

    找到整个桌面的矩形区域,然后减去任务条(类Shell_TrayWnd下)的矩形区域
      

  2.   

    不行的,我试了,         CWnd *pTaskBar=FindWindow("Shell_TrayWnd",NULL);
    if(pTaskBar==NULL)return;
    RECT rctTaskBar;
    pTaskBar->GetWindowRect(&rctTaskBar);
    nTbh=rctTaskBar.bottom-rctTaskBar.top;//任务条的高度不管任务条是否隐藏了,nTbh的值不变的,在我这里为32!!
      

  3.   

    CRect rcWorkarea;
    ::SystemParametersInfo(SPI_GETWORKAREA,NULL,(PVOID)&rcWorkarea,NULL);
    rcWorkarea就是Windows桌面除了任务条的矩形区域
      

  4.   

    CRect rect;
    SystemParametersInfo(SPI_GETWORKAREA, 0, (PVOID)&rect, 0);
      

  5.   

    SystemParametersInfo函数在msdn中的说明中有这么一句话:
    The pvParam parameter must point to aRECT structure that receives the coordinates of the work area, expressed in virtual screen coordinates.什么是virtual screen coordinates?“虚拟屏幕坐标”?帮人帮到底嘛@
      

  6.   

    所有监视器的边界矩形就是虚拟屏幕,桌面覆盖的是虚拟屏幕而不是单个监视器。如下图所示
    --------------------_______________________
    |                                       |                     |
    |            ___________________________|  监视器3            |                 
    |____________|                          |                     |
    |            |       主监视器           |_____________________|
    |            |                          |                     |
    |   监视器2  |__________________________|                     |
    |            |                                                |
    |____________|------------------------|整个虚框就是虚拟屏幕,主监视器包含原点(0,0)。主监视器不一定要在左上角,所以,有可能出现负坐标。详细参见ms-help://MS.MSDNQTR.2003APR.1033/gdi/monitor_7hym.htm
      

  7.   

    to:  AkiraChing(水银)"详细参见ms-help://MS.MSDNQTR.2003APR.1033/gdi/monitor_7hym.htm"你在帖子末尾给的这个连接是什么意思?不是URL吧?怎么找不到呀?
      

  8.   

    你在msdn的地址栏粘贴就可以找到了