MFC-GetClientRect获取窗口客户区的坐标
Posted 天子骄龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC-GetClientRect获取窗口客户区的坐标相关的知识,希望对你有一定的参考价值。
win32API
RECT rect; CWnd* pWnd = GetDlgItem(IDC_LIST1); HWND hWnd = pWnd->GetSafeHwnd(); BOOL b = ::GetClientRect(hWnd, &rect);//获取窗口客户区的坐标 /* 参数1:HWND hWnd 窗口句柄 参数2:LPRECT lpRect 返回客户区坐标 该结构有四个LONG字段,分别为left、top、right和bottom GetClientRect将这四个字段设定为窗口显示区域的尺寸。 left和top字段通常设定为0。right和bottom字段设定为显示区域的宽度和高度(像素点数) 也可以是一个CRect对象指针。CRect对象有多个参数,与RECT用法相同 返回值:如果函数成功,返回一个非零值。如果函数失败,返回零 */
MFC
RECT rect; CWnd* pWnd = GetDlgItem(IDC_LIST1); pWnd->GetClientRect(&rect);
EVT_NC_PAINT 窗口非客户区的绘制
说明
NC就是non client意思,非客户区主要包括标题栏,状态栏,工具栏和边框等区域,目前wxwidgets只是提供了EVT_NC_PAINT 唯一的一个非客户区的事件,在MFC中,还有提供WM_NCLBUTTONDOWN WM_NCLBUTTONUP WM_NCMOUSEMOVE等事件操作,如果需要关联这些事件,就必须要过滤该事件,或者在源码中实现该类事件
目前需要拖动边框的时候,客户区域不变,只是边框变大,等到边框拖动到合适的地方,鼠标弹起,客户区域重绘
以上是关于MFC-GetClientRect获取窗口客户区的坐标的主要内容,如果未能解决你的问题,请参考以下文章