在视图中显示了按钮 想自由的用鼠标拖动它们

解决方案 »

  1.   

    void CAsDlg::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    if(::ChildWindowFromPoint(GetSafeHwnd(),point)==m_button1.m_hWnd)
    {        //判断鼠标是否在按钮1上,m_button1为控件变量
    m_bLButtonDown=TRUE;
    }
    //m_bLButtonDown=TRUE;
    CDialog::OnLButtonDown(nFlags, point);
    }void CAsDlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
    if(m_bLButtonDown)   //在OnLButtonDown函数中,设置BOOL型变量m_bLButtonDown为TRUE
    {
    CRect rcTemp;
    GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rcTemp);
    int b = rcTemp.bottom - rcTemp.top;
    int r = rcTemp.right - rcTemp.left;
    rcTemp.left = point.x;
    rcTemp.top = point.y;
    rcTemp.bottom = rcTemp.top + b;
    rcTemp.right = rcTemp.left + r;
            GetDlgItem(IDC_BUTTON1)->MoveWindow(rcTemp,true); //移动按钮
    }
    }void CAsDlg::OnLButtonUp(UINT nFlags, CPoint point) 
    {
    m_bLButtonDown = false;
             CDialog::OnLButtonUp(nFlags, point);
    }
    试试看,我刚刚写的^_^
    }