获取窗口最大化区域
void CMainFrame::GetFullViewRect(RECT &rt)
{
rt.left=0;
rt.right=800;
rt.top=0;
rt.bottom=600;
HWND hwnd1=0,hwnd2=0;
hwnd1=::GetDesktopWindow();
if(hwnd1==NULL) return;
RECT rt_Desktop;
::GetWindowRect(hwnd1,&rt_Desktop);
hwnd2=::FindWindow("Shell_TrayWnd",NULL);
if(hwnd2==NULL) return;
RECT rt_TrayWnd;
::GetWindowRect(hwnd2,&rt_TrayWnd);
if((rt_TrayWnd.bottom-rt_TrayWnd.top)<(rt_TrayWnd.right-rt_TrayWnd.left))
{
if((rt_Desktop.bottom-rt_TrayWnd.bottom)>0)
{
rt.top = rt_TrayWnd.bottom;
rt.left = rt_Desktop.left;
rt.bottom = rt_Desktop.bottom;
rt.right = rt_Desktop.right;
}
else
{
rt.top = rt_Desktop.top;
rt.left = rt_Desktop.left;
rt.bottom = rt_TrayWnd.top;
rt.right = rt_Desktop.right;
}
}
else
{
if((rt_Desktop.right-rt_TrayWnd.right)>0)
{
rt.top = rt_Desktop.top;
rt.left = rt_TrayWnd.right;
rt.bottom = rt_Desktop.bottom;
rt.right = rt_Desktop.right;
}
else
{
rt.top = rt_Desktop.top;
rt.left = rt_Desktop.left;
rt.bottom = rt_Desktop.bottom;
rt.right = rt_TrayWnd.left;
}
}
if((rt.right-rt.left)<800) rt.right=rt.left+800;
if((rt.bottom-rt.top)<600) rt.bottom=rt.top+600;
}


浙公网安备 33010602011771号