
实际用到的就是GetWindowRect和MoveWindow两个函数。
计算过程中,既然是相对底部,那么获取窗口大小和控件位置后,先计算rectbottom和窗口高度的差值,加上一个底部正常距离,获取一个int值 iMove; 将rect的top和bottom分别减去这个iMove,调用MoveWindow即可。
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。
GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。
用GetClientRect返回的RECT结构上左为零, 右下分别对应客户区的宽度和高度;
GetWindowRect 获取的是整个window 的rect 包括标题栏 之类的周边 而且是屏幕坐标
GetClientRect 获取的是客户区, 建立一个单文档程序运行起来后。你看到window 中白色的区域就是客户区 而且是客户坐标
以上就是关于MFC对话框大小改变时同时改变控件位置全部的内容,包括:MFC对话框大小改变时同时改变控件位置、MFC中函数GetWindowRect和GetClientRect的区别、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)