MFC dlg中将button移动到一个控件上

    CRect dlgRect;
    GetParent()->GetWindowRect(&dlgRect);// 获取dlg相对屏幕的rect
    
    CRect slidRect;
    GetWindowRect(&slidRect);// 获取控件相对屏幕的rect


    CRect slidSizeRect;
    GetClientRect(&slidSizeRect);// 获取控件的尺寸


    int nDeLeft = slidRect.left - dlgRect.left ;// 计算相对变化量

    int nDeTop = slidRect.top - dlgRect.top ;// 计算相对变化量

    CRect moveRect(nDeLeft, nDeTop, slidSizeRect.right + nDeLeft, slidSizeRect.bottom + nDeTop); // 计算控件相对dlg的位置
    int nTop = (moveRect.top + moveRect.bottom) / 2 - 20;//  计算控件的高度中点作为button的Top
    CRect rctMin(moveRect.left, nTop, moveRect.left + 40, nTop + 20); // 创建button的rect

    m_btnMin->MoveWindow(rctMin); // 移动button

// GetWindowRect()得到的居然都是相对屏幕分辨率的坐标,moveWindow()又是相对dlg左上角产生的坐标,难怪每次移动都移动到奇怪的位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值