在Win SDK编程过程中,难免会涉及到需要获得客户区的大小,那么获得客户区大小有几种方法呢?这里我整理了常用的两种。
使用GetClientRect() 废话不多说,直接上代码:
// 响应什么消息都可以使用这个方法RECT rect;GetClientRect(&rect); int cxClient = rect.right - rect.left; // 获得客户区宽度int cyClient = rect.bottom - rect.top; // 获得客户区高度使用WM_SIZE消息的lParam参数 当客户区在不停变化时,使用上述方法就有点捉襟见肘了。这时可以使用WM_SIZE消息响应时,lParam参数可以提供客户区的宽度和高度信息。直接看代码:
case WM_SIZE: int cxClient = LOWord(lParam); // 获得客户区宽度 int cyClient = HIWORD(lParam); // 获得客户区高度 return 0;总结 总而言之,我还是喜欢第二种方法,灵活多变,而且简单方便。
新闻热点
疑难解答