younthu

获取窗口client区的大小

在程序里面,经常要检查屏幕的宽度/高度,还要检查窗口绘图区域的宽度/高度。怎么在win32 下获取这些信息呢?

方法1:

GetSystemMetrics(SM_CXSCREEN);//获取屏幕的宽度

GetSystemMetrics(SM_CYSCREEN);//获取屏幕的高度

BOOL GetWindowInfo(      
    HWND hwnd,
    PWINDOWINFO pwi
);//获取窗口的信息,然后读取窗口大小。参见http://msdn.microsoft.com/en-us/library/ms633516(VS.85).aspx

GetWindowRect( HWND hWnd, LPRECT lpRect)//获取窗口区域信息,这个区域包括边框,标题栏的。返回的是基于屏幕左上角为原点的矩形信息

GetClientRect(HWND hWnd, LPRECT lpRect)//获取client区域的信息,注意这个区域是以相对坐标系(相对于window)来定位的。

方法2:

响应WM_SIZE消息,然后

cxClient = LOWORD (lParam) ;//客户区域的宽度

cyClient = HIWORD (lParam) ;//客户区域的高度

 

 

posted on 2009-11-06 15:25  younthu  阅读(700)  评论(1编辑  收藏  举报

导航