MFC SPIN 和EDIT控件一起使用时,使用movewindow移动EDIT SPIN不跟随移动怎么办?

Mikeyunshan 2018-11-07 08:41:20
MFC SPIN 和EDIT控件一起使用时,使用movewindow移动EDIT
SPIN不跟随移动怎么办?
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2018-11-07
  • 打赏
  • 举报
回复
Invalidate Spin ?
zgl7903 2018-11-07
  • 打赏
  • 举报
回复

CWnd *pEdit = GetDlgItem(IDC_EDIT5);
CSpinButtonCtrl *pSpin = (CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1);
if(pEdit && pSpin)
{
if(pSpin->GetBuddy() == NULL
|| pSpin->GetBuddy()->m_hWnd != pEdit->m_hWnd)
{
pSpin->SetBuddy(pEdit);
}

CRect rcEdit;
pEdit->GetWindowRect(&rcEdit);
ScreenToClient(&rcEdit);

CRect rcSpin;
pSpin->GetWindowRect(&rcSpin);
ScreenToClient(&rcSpin);

rcEdit.OffsetRect(30, 0);
rcSpin.OffsetRect(30, 0);

pSpin->MoveWindow(&rcSpin);
pEdit->MoveWindow(&rcEdit);
}
Mikeyunshan 2018-11-07
  • 打赏
  • 举报
回复
如果移动到edit里面 就被遮挡了 不是那种自动跟随效果,如果移动到edit后面,那也体现不了 跟随属性啊
zgl7903 2018-11-07
  • 打赏
  • 举报
回复
SPIN 控件也 MoveWindow 移动一下
schlafenhamster 2018-11-07
  • 打赏
  • 举报
回复
在 派生 edit 中 处理

void CMyEdit::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
static CPoint ptLast;
CSpinButtonCtrl *pSpin;
pSpin=&((CCustomCtrlDlg*)GetParent())->m_Spin;

if(MK_LBUTTON==nFlags)
{
CRect rc;
GetWindowRect(&rc);
ScreenToClient(&rc);
MapWindowPoints(GetParent(),&rc);
MoveWindow(rc.left+(point.x-ptLast.x), rc.top+(point.y-ptLast.y), rc.Width(), rc.Height());
// afxDump << rc.Width() << "\n";
pSpin->Invalidate();
// move spin
CRect rc1;
pSpin->GetWindowRect(&rc1);
pSpin->ScreenToClient(&rc1);
pSpin->MapWindowPoints(GetParent(),&rc1);
pSpin->MoveWindow(rc1.left+(point.x-ptLast.x), rc1.top+(point.y-ptLast.y), rc1.Width(), rc1.Height());
}
else
{
ptLast=point;
CEdit::OnMouseMove(nFlags, point);
}
// CEdit::OnMouseMove(nFlags, point);
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧