mfc控件位置调整

mfc工程中控件或者窗口位置的调整是经常遇到的,特别是基于对话框的工程。位置的调整包括坐标、长度和宽度的变化,一般在窗口类的OnSize函数中实现。控件位置的调整涉及的函数有:GetWindowRect()ScreenToClient()GetClientRect()MoveWindow()SetWindowPos(),功能意义如下:

GetWindowRect():获得窗口在屏幕上的矩形坐标,调整控件位置时必须首先获得该屏幕坐标;

ScreenToClient():转换屏幕坐标到客户区坐标,如果为子窗口,转换后坐标为相对于父窗口的坐标,若为独立窗口,转换后客户区左上坐标为(00);调整子窗口时这一步也是必须的;

GetClientRect():获得窗口客户区坐标,左上坐标永远为(00);

MoveWindow():调整控件到指定位置;

SetWindowPos():调整控件的位置,该函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:

控件位置调整涉及的参变量有:主窗口的cxcy坐标、参考点坐标。相对于调整位置时调用的函数,变量稍许复杂些。cxcy坐标为主窗口的宽和高,有OnSize的参数给出,为窗口控件调整提供了变化的范围,所有的控件为了能够正常显示都不能超出这个范围。其实在开发过程中较难和重要的是参考控件的选择,其位置相对于主窗口来说必须好确定。常用的策略:

1.  选择主窗口上位置不随窗口大小变化的控件为参考;

2.  选择主窗口上控件的宽或者高固定的控件;

3.  选择与主窗口满足固定坐标关系的控件

4.  选择主窗口上控件位置或者高宽容易确定的控件。

以上四种策略可在实际开发中作为参考!不管遇到什么的情况,一定要清楚:选则一个

参考点。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值