+ -
当前位置:首页 → 问答吧 → 子窗口如何获得显示的部分窗口大小?

子窗口如何获得显示的部分窗口大小?

时间:2011-12-28

来源:互联网

如题

作者: lwaif   发布时间: 2011-12-28

GetWindowRect()

话说你要获得自己的还是父窗口的还是 其他子窗口的?

作者: glovel0425   发布时间: 2011-12-28

当然是自己的了,用GetWindowRect这些是获得整个窗口的大小,但子窗口有些部分会被父窗口挡住,要获得挡住后窗口的大小

作者: lwaif   发布时间: 2011-12-28

GetWindowRect
获取整个窗体边界的矩形区域大小,整个窗体的标题栏也包含在内;

GetClientRect
获取窗体静区的矩形区域大小,就是你说的显示的部分窗口大小;

作者: chayedanwc   发布时间: 2011-12-28

引用 2 楼 lwaif 的回复:
当然是自己的了,用GetWindowRect这些是获得整个窗口的大小,但子窗口有些部分会被父窗口挡住,要获得挡住后窗口的大小


原来是这样啊,那你用GetWindowRect把主窗体和子窗体的区域两个都获取下来,把两个区域的RECT重叠的部分处理一下不行么。

作者: chayedanwc   发布时间: 2011-12-28

CRect rect;
GetClientRect(rect);
TRACE("GetClientRect %d %d %d %d \n",rect.left,rect.top,rect.right,rect.bottom);
GetWindowRect(rect);
TRACE("GetWindowRect %d %d %d %d \n",rect.left,rect.top,rect.right,rect.bottom);
没用,获得的rect大小是一样的,GetClientRect是在父窗口里的坐标,GetWindowRect是在屏幕里的坐标

作者: lwaif   发布时间: 2011-12-28

用两个矩形区域坐标应该可以算出来挡住后的大小。

依次得到两个窗口的大小,再根据坐标进行运算。

该死的404

作者: glovel0425   发布时间: 2011-12-28

唉,获取不了父窗口的位置大小啊

作者: lwaif   发布时间: 2011-12-28