vc++中,如何根据一个窗口的ID得到此窗口的句柄。然后改变其大小? 若是直接GetWindowRect(&brect);好像只

vc++中,如何根据一个窗口的ID得到此窗口的句柄。然后改变其大小?若是直接GetWindowRect(&brect);好像只能得到目前活动的窗口大小另外,SetWind... vc++中,如何根据一个窗口的ID得到此窗口的句柄。然后改变其大小?
若是直接GetWindowRect(&brect);好像只能得到目前活动的窗口大小
另外,
SetWindowPos(hwnd,400,200,bx,by,SWP_SHOWWINDOW);里的hwnd是不是也默认关联到活动窗口的?

我用了3L的方法,::GetWindowRect(hWnd,&rect),得到的大小却是0。另外,windows7中SetWindowPos(hwnd,400/x,200/y,bx,by,SWP_SHOWWINDOW);这一句好像有问题,执行到这就不行了。怎么回事?
展开
 我来答
xingrui05
2010-10-27 · TA获得超过305个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:150万
展开全部
HANDLE hWnd = GetDlgItem(ID_YOURID)->GetSafeWnd();
或许可以获得句柄吧。
改变大小的话可以使用MoveWindow的方法。

其实MFC里的大部分函数都有两个版本
比如GetWindowRect(LPRECT lpRect);
其实它是一个成员函数,它间接调用了windows提供的接口
BOOL GetWindowRect( HWND hWnd,
LPRECT lpRect
);
因此如果你想获得其他窗口的信息,你就直接调用windows提供的接口就可以了。
windows提供的接口多一个参数是窗口句柄,而成员函数由于窗口就是自己,因此为了方便程序员使用就省去了第一个参数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友917c7ea
2010-11-03 · TA获得超过374个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:207万
展开全部
MoveWindow一般用于当前窗口中的子窗口相对主窗口的位置进行调整
setWindowPos一般用于主窗口相对屏幕的位置进行调整
GetWindowRect的话就这样用:
CRect rect;
HWND hWnd = GetDlgItem(控件ID)->GetSafeHwnd();
::GetWindowRect(hWnd, &rect);
rect就是所需要的了。
/////////////////////////////////////////
你的hWnd是否为空,为空的话就是控件此时还没有生成,你应该先创建该控件,然后ShowWindow,把它show出来,再按照上面的方法,可得到rect
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友40fc6daa7
2010-10-27 · 超过15用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:32.6万
展开全部
GetDlgItem(控件ID)->GetSafeHwnd();

改变大小:setWindowPos和MoveWindow 函数都可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无聊的人聊110
2010-11-10 · TA获得超过1万个赞
知道大有可为答主
回答量:1716
采纳率:0%
帮助的人:3657万
展开全部
改变里面的值?只需要重新给TEXTBOX赋值即可,和句柄无关。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiugeen
2010-10-29 · TA获得超过210个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:172万
展开全部
GetDlgItem(控件ID)->GetWindowRect(&brect);
GetDlgItem(控件ID)->movewindow(CRect());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式