VC获得桌面工作区与任务栏大小(宽度与高度)

 

获得桌面工作区大小,即不包括任务栏的大小,制作窗口全屏时经常用到,方法如下:

 

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


 

 

获得任务栏高度与宽度方法有二:

1.判断位置

 

       RECT rt;

       SystemParametersInfo(SPI_GETWORKAREA,   0,   &rt,   0)    // 获得工作区大小

  //任务栏在下面的高度   

        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();//包含有宽度


 

参考资料:

http://zhoumf1214.blog.163.com/blog/static/5241940201032010451992/

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值