VC++中鼠标拖动实现不同CListBox框之间内容的转移

来源:互联网 发布:c语言fft程序 编辑:程序博客网 时间:2024/05/05 10:43
BOOL CDIALOGDlg::PreTranslateMessage(MSG *pMsg)
{
 BOOL bFlag=CDialog::PreTranslateMessage(pMsg);
 CRect cRectPre,cRectNow,cRectEnd;
 CPoint curPoint;
 ::GetCursorPos(&curPoint); //why begin need to add ::?????????????????
 GetDlgItem(IDC_LISTPRE)->GetWindowRect(&cRectPre);
 GetDlgItem(IDC_LISTNOW)->GetWindowRect(&cRectNow);
 GetDlgItem(IDC_LISTEND)->GetWindowRect(&cRectEnd);
 
 if(curPoint.x >=cRectPre.left && curPoint.x <=cRectPre.right && curPoint.y >=cRectPre.top && curPoint.y <=cRectPre.bottom)
 {
  if(pMsg->message == WM_LBUTTONDOWN)
  {
   int iIndex;
   iIndex=m_listPre.GetCurSel();//gain position small choosed
   m_listPre.GetText(iIndex,m_strTrans);
   m_PreFg=true;
  }
 }
 if(curPoint.x >=cRectNow.left && curPoint.x <=cRectNow.right && curPoint.y >=cRectNow.top && curPoint.y <=cRectNow.bottom)
 {
  if(pMsg->message == WM_LBUTTONDOWN)
  {
   int iIndex;
   iIndex=m_listNow.GetCurSel();//gain position small choosed
   m_listNow.GetText(iIndex,m_strTrans);
   m_NowFg=true;
  }
  if(pMsg->message == WM_LBUTTONUP && m_PreFg == true)
  {
   m_listNow.AddString(m_strTrans);
   m_strTrans=_T("");
   m_PreFg=false;
  }
 }
 if(curPoint.x >=cRectEnd.left && curPoint.x <=cRectEnd.right && curPoint.y >=cRectEnd.top && curPoint.y <=cRectEnd.bottom)
 {
  if(pMsg->message == WM_LBUTTONUP && m_NowFg == true)
  {
   m_listEnd.AddString(m_strTrans);
   m_strTrans=_T("");
   m_NowFg=false;
  }
 }
 return bFlag;
}
原创粉丝点击