如何在对话框里实现鼠标的变换,请详细些。谢谢

解决方案 »

  1.   

    靠,这还有趣!
    SetCursor()void CAutoEditDlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
    /*if(m_rtEdit.PtInRect(point))
    {
       str.Format("x=%d,y=%d",point.x,point.y);
       AfxMessageBox(str);
     }*/ if(point.x==m_rtEdit.right&&point.y==m_rtEdit.bottom)
    {
    SetCursor(::LoadCursor(NULL,IDC_SIZENWSE));
            m_bNWSEMoveReady=TRUE;
    m_bWEMoveReady=FALSE;
    m_bNSMoveReady=FALSE; }
    else if(point.x==m_rtEdit.right&&point.y<m_rtEdit.bottom&&point.y>m_rtEdit.top)
    {
    SetCursor(::LoadCursor(NULL,IDC_SIZEWE));
    m_bWEMoveReady=TRUE;
    m_bNWSEMoveReady=FALSE;
    m_bNSMoveReady=FALSE;

    }
    else if(point.y==m_rtEdit.bottom&&point.x<m_rtEdit.right&&point.x>m_rtEdit.left)
    {
    SetCursor(::LoadCursor(NULL,IDC_SIZENS));
    m_bNSMoveReady=TRUE;  
    m_bNWSEMoveReady=FALSE;
    m_bWEMoveReady=FALSE;
    }

    if(nFlags&MK_LBUTTON)
    {
    if(m_bWEMoveOK)
    {
    m_rtEdit.right=point.x;
    }
    if(m_bNSMoveOK)
    {
    m_rtEdit.bottom=point.y;
    }
    if(m_bNWSEMoveOK)
    {
    m_rtEdit.right=point.x;
    m_rtEdit.bottom=point.y;
    }
     m_edInput.MoveWindow(&m_rtEdit);
    }

    CDialog::OnMouseMove(nFlags, point);
    }
      

  2.   

    void CAutoEditDlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
    /*if(m_rtEdit.PtInRect(point))
    {
       str.Format("x=%d,y=%d",point.x,point.y);
       AfxMessageBox(str);
     }*/ if(point.x==m_rtEdit.right&&point.y==m_rtEdit.bottom)
    {
    SetCursor(::LoadCursor(NULL,IDC_SIZENWSE));
            m_bNWSEMoveReady=TRUE;
    m_bWEMoveReady=FALSE;
    m_bNSMoveReady=FALSE; }
    else if(point.x==m_rtEdit.right&&point.y<m_rtEdit.bottom&&point.y>m_rtEdit.top)
    {
    SetCursor(::LoadCursor(NULL,IDC_SIZEWE));*********
    m_bWEMoveReady=TRUE;
    m_bNWSEMoveReady=FALSE;
    m_bNSMoveReady=FALSE;

    }
    else if(point.y==m_rtEdit.bottom&&point.x<m_rtEdit.right&&point.x>m_rtEdit.left)
    {
    SetCursor(::LoadCursor(NULL,IDC_SIZENS));********
    m_bNSMoveReady=TRUE;  
    m_bNWSEMoveReady=FALSE;
    m_bWEMoveReady=FALSE;
    }

    if(nFlags&MK_LBUTTON)
    {
    if(m_bWEMoveOK)
    {
    m_rtEdit.right=point.x;
    }
    if(m_bNSMoveOK)
    {
    m_rtEdit.bottom=point.y;
    }
    if(m_bNWSEMoveOK)
    {
    m_rtEdit.right=point.x;
    m_rtEdit.bottom=point.y;
    }
     m_edInput.MoveWindow(&m_rtEdit);
    }

    CDialog::OnMouseMove(nFlags, point);
    }