16,472
社区成员
发帖
与我相关
我的任务
分享
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);
}
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);
}