我想获得整个屏幕,除掉任务栏后的大小。我是这样做的。
int iWidth = GetSystemMetrics(SM_CXFULLSCREEN);
int iHeight = GetSystemMetrics(SM_CYFULLSCREEN);
但是!我发现我获得不是除掉任务栏的高度的哇。这个,是不是用错咯参数?谢谢~
int iWidth = GetSystemMetrics(SM_CXFULLSCREEN);
int iHeight = GetSystemMetrics(SM_CYFULLSCREEN);
但是!我发现我获得不是除掉任务栏的高度的哇。这个,是不是用错咯参数?谢谢~
int nSysWidth = GetSystemMetrics( SM_CXSCREEN );
int nSysHeight = GetSystemMetrics( SM_CYSCREEN );CWnd *pTaskBar = NULL;
pTaskBar = FindWindow( _T("Shell_TrayWnd"), NULL);if (pTaskBar)
{
CRect rectTask;
pTaskBar->GetWindowRect(&rectTask);
nTaskHeight = rectTask.Height();
}
你要求的高度=nSysHeight - nTaskHeight ;
这两个不行,会有大概30像素的误差不知道原因的很怪异。所以,需要使用这个:
SystemParametersInfo(SPI_GETWORKAREA,0,&rcWorkArea,0)这样,获得的rcWorkArea就是除掉工具栏,除掉任务栏的正确范围咯。