获取窗体显示区域大小
已我现在的了解,获取窗体显示区域大小有三种方法。
第一种方法:使用GetSystemMetrics函数
- GetSystemMetrics(SM_CXFULLSCREEN); //获取最大化窗体的显示区域宽度
- GetSystemMetrics(SM_CYFULLSCREEN);//获取最大化窗体的显示区域高度
第二种方法:使用GetClientRect函数
该函数的原型如下:
- BOOLGetClientRect(
-
HWNDhWnd, //handle to window -
LPRECTlpRect //client coordinates - );
书上没介绍该函数的使用方法,看MSDN的示例代码,经过测试,其使用方法如下:
- RECT rect;
- hdc = BeginPaint (hwnd, &ps);
- GetClientRect(hwnd, &rect);
- x = rect.right;
- y = rect.bottom;
- SetTextAlign(hdc, TA_RIGHT | TA_TOP);
- TextOut(hdc, 100, 0, szBuffer,wsprintf(szBuffer,TEXT("%5d"), x));
- TextOut(hdc, 100, cyChar,szBuffer, wsprintf(szBuffer,TEXT("%5d"), y));
- EndPaint (hwnd, &ps);
第三种方法:LOWORD和HIWORD宏
- caseWM_SIZE:
-
x = LOWORD(lParam); -
y = HIWORD(lParam);