MFC中获取任务栏大小
MFC怎么獲得當前屏幕大小
你可以這樣
HWND hwnd=GetDesktopWindow();
RECT rect;
GetClientRect(hwnd,&rect);//可以得到桌面大小
還有就是上面所說的
int nScreenWidth, nScreenHeight;
nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
?
?
獲得桌面工作區大小,即不包括任務欄的大小,制作窗口全屏時經常用到,方法如下:
?
?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/
總結
以上是生活随笔為你收集整理的MFC中获取任务栏大小的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何基于FFMPEG和SDL写一个少于1
- 下一篇: 强烈推荐给从事IT业的同行们 (转载)