VC得到桌面工做區與任務欄大小(寬度與高度)

得到桌面工做區大小,即不包括任務欄的大小,製做窗口全屏時常常用到,方法以下:函數

RECT rt;
 SystemParametersInfo(SPI_GETWORKAREA,0,(PVOID)&rt,0);this

 

得到任務欄高度與寬度方法有二:指針

1.判斷位置對象

       RECT rt;方法

SystemParametersInfo(SPI_GETWORKAREA,   0,   &rt,   0)    // 得到工做區大小top

  //任務欄在下面的高度  工作

  int   y   =   ::GetSystemMetrics(SM_CYSCREEN)-rt.Height();  

  //上面  

  int   y   =   rt.top;  

 // 左  

  int   y   =   rt.left;  

 // 右  

  int   y   =   ::GetSystemMetrics(SM_CXSCREEN)-rt.Width();

2.獲得高度,而後可判斷位置

CRect   rect;  

CWnd *pWndPrev=   FindWindow("Shell_TrayWnd", "");     // 調用本對象即this的Findwindow函數,返回窗口指針

  pWndPrev->GetWindowRect(&rect); 

   //rect.bottom-rect.top   就是任務欄的高度  

if(rect.top>0)   //下面

if(rect.left>0)   //左面 

或者

CWnd*   p   =   NULL   ;          HWND   hwnd   =   ::FindWindow("Shell_TrayWnd",NULL)   ;     // 調用公有的FindWindow函數,返回窗口句柄       if(hwnd)          {                   p   =   CWnd::FromHandle(hwnd)   ;          }          p->GetWindowRect();//包含有寬度

相關文章
相關標籤/搜索