MFC使窗口显示在右下角任务栏上方区域

本文介绍了如何使用MFC和Windows API将窗口移动到屏幕右下角任务栏上方的区域。通过SystemParametersInfo函数获取工作区,然后计算并调整窗口位置。示例代码展示了如何实现这一功能。
摘要由CSDN通过智能技术生成

  RECT rcWorkArea;
   //获得客户可用工作区
   if ( SystemParametersInfo(SPI_GETWORKAREA,0,&rcWorkArea,0))
   {
    int nScrWidth=GetSystemMetrics(SM_CXSCREEN);
    int nScrHeight =GetSystemMetrics(SM_CYSCREEN);
    CRect rcWindow;
    GetWindowRect(rcWindow);
    //获得移动到右下角的区域
    CRect rcMoveRect;
    rcMoveRect.left  = rcWorkArea.right - rcWindow.Width();
    rcMoveRect.right = rcWorkArea.right;
    rcMoveRect.top = rcWorkArea.bottom - rcWindow.Height();
    rcMoveRect.bottom= rcWorkArea.bottom;
    MoveWindow(rcMoveRect);  
   }

 

参考资料

 

Windows API一日一练(75)SystemParametersInfo函数
面对华丽的Windows桌面,工作的心情或许好很多,但是久了总会失去兴趣,总想定期地更新桌面的图片。软件开发人员又面对这样的需求了,需要怎么样去做呢?努力去找API函数吧。到目前为止,还有很多变桌面图片的软件,并且还能很挣钱的。其实设置桌面图片的需求,在目前数码相片处理软件也有现实的需求,比如当你去旅游回来后,想把照片当作桌面图片,就可以在处理图片时就设置为桌面图片。这样就需要使用函数SystemParametersInfo来完成这项工作了,当然这个函数还有很多其它功能,比如获取桌面工作区的大小。

函数SystemParametersInfo声明如下:
WINUSERAPI
BOOL
WINAPI
SystemParametersInfoA(
    __in UINT uiAction,
    __in UINT uiParam,
    __inout_opt PVOID pvParam,
    __in UINT fWinIni);
WINUSERAPI
BOOL
WINAPI
SystemParametersInfoW(
    __in UINT uiAction,
    __in UINT uiParam,
    __inout_opt PVOID pvParam,
    __in UINT fWinIni);
#ifdef UNICODE
#define SystemParametersInfo SystemParametersInfoW
#else
#define SystemParametersInfo SystemParametersInfoA
#endif // !UNICODE

uiAction是作不同的操作参数。
uiParam是设置的参数。
pvParam是设置或返回的参数。
fWinIni是设置的参数。

调用函数的例子如下:
#001 //
#002  //获取系统配置信息。
#003  //蔡军生 2007/11/16 QQ:9073204 深圳
#004  void GetSystemParam(void)
#005  {
#006        //获取桌面墙纸的路径。
#007        //SPI_GETDESKWALLPAPER
#008        TCHAR chPath[MAX_PATH];
#009        if (SystemParametersInfo(SPI_GETDESKWALLPAPER,MAX_PATH,chPath,0))
#010        {
#011              //
#012              OutputDebugString(chPath);
#013              OutputDebugString(_T("/r/n"));
#014        }
#015
#016        //获取工作区的大小。
#017        //SPI_GETWORKAREA
#018        RECT rcWorkArea;
#019        if (SystemParametersInfo(SPI_GETWORKAREA,0,&rcWorkArea,0))
#020        {
#021              //
#022              const int nBufSize = 256;
#023              TCHAR chBuf[nBufSize];
#024
#025              wsprintf(chBuf,_T("%u,%u,%u,%u"),rcWorkArea.left,rcWorkArea.top,
#026                    rcWorkArea.right,rcWorkArea.bottom);
#027             
#028              OutputDebugString(chBuf);
#029              OutputDebugString(_T("/r/n"));
#030        }
#031
#032  }

http://blog.csdn.net/li_guotao/archive/2009/01/09/3741407.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值