VC++中鼠标拖动实现两对话框之间信息的转移(优化篇)

BOOL CDIALOGDlg::PreTranslateMessage(MSG *pMsg)
{
 BOOL bFlag=CDialog::PreTranslateMessage(pMsg);
 CRect cRectPre,cRectNow,cRectEnd;
 CPoint curPoint;   
 CString strTime;

 SYSTEMTIME sysTime;
 GetLocalTime(&sysTime);

 strTime.Format("  %d-%d-%d-%d-%d-%d  ",sysTime.wYear,sysTime.wMonth,sysTime.wDay,sysTime.wHour,sysTime.wMinute,sysTime.wSecond);

 //
 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 )
  {
   m_iIndexPre=m_listPre.GetCurSel();//gain position small choosed
   if(m_iIndexPre != -1)
   {
    m_listPre.GetText(m_iIndexPre,m_strTrans);
   }
  }
  else if(pMsg->message == WM_LBUTTONDBLCLK)
  {
   m_iIndexPre=m_listPre.GetCurSel();//gain position small choosed
   if(m_iIndexPre != -1)
   {
    m_listPre.GetText(m_iIndexPre,m_strChange);
    GetDlgItem(IDC_EDIT)->SetWindowText(m_strChange);
    m_bFgChg=true;
   }

  }
 }
 if(curPoint.x >=cRectNow.left && curPoint.x <=cRectNow.right && curPoint.y >=cRectNow.top && curPoint.y <=cRectNow.bottom )
 {
  if((pMsg->message == WM_LBUTTONDOWN )&& (pMsg->hwnd == GetDlgItem(IDC_LISTNOW)->m_hWnd))
  {
   m_iIndexNow=m_listNow.GetCurSel();//gain position small choosed
   if(m_iIndexNow != -1)
   {
    m_listNow.GetText(m_iIndexNow,m_strTrans);
   }
  }
  else if((pMsg->message == WM_LBUTTONUP )&& (pMsg->hwnd == GetDlgItem(IDC_LISTPRE)->m_hWnd))
  {
   m_strTrans+=strTime;
   m_listNow.AddString(m_strTrans);
   m_strTrans=_T("");
   m_listPre.DeleteString(m_iIndexPre);
  }
  //else if(pMsg->message == WM_LBUTTONDBLCLK)
  //{
  // m_iIndexNow=m_listNow.GetCurSel();//gain position small choosed
  // if(m_iIndexNow != -1)
  // {
  //  m_listNow.GetText(m_iIndexNow,m_strChange);
  //  GetDlgItem(IDC_EDIT)->SetWindowText(m_strChange);
  //  DeleteItem(m_iIndexNow);
  //  m_bFgChg=true;
  // }

  //}
 }
 if(curPoint.x >=cRectEnd.left && curPoint.x <=cRectEnd.right && curPoint.y >=cRectEnd.top && curPoint.y <=cRectEnd.bottom )
 {
  if((pMsg->message == WM_LBUTTONUP) && (pMsg->hwnd == GetDlgItem(IDC_LISTNOW)->m_hWnd))
  {
   m_strTrans+=strTime;
   m_listEnd.AddString(m_strTrans);
   m_strTrans=_T("");
   m_listNow.DeleteString(m_iIndexNow);
  }
 }
 return bFlag;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值