控件类是我从CStatic派生的一个类CMyStatic,我在CFromView上绘制一个CMyStatic的控件,怎样实现使用鼠标拖动改变控件大小

解决方案 »

  1.   

    在ONLBUTTONDOWN中开始,在ONMOUSEMOVE中改变,在ONLBUTTONUP中结束,MoveWindow
      

  2.   

    BOOL m_bResizing;
    OnLButtonDown
    if(点在边界上)
    {
    m_bResizing = TRUE;
    }OnMouseMove
    //判断当前光标相对控件的方位,得到将要传入MoveWindow的RECT参数
    if(m_bResizing)
    MoveWindowOnLButtonUp
    m_bResizing = FALSE;
      

  3.   

    一、我就是在OnLButtonDown()中进行边界判断的时候,老是得不到正确的判断值。
    二、OnNCHitTest()
    {
     . .....
    }
    应该怎样写
      

  4.   


    还要响应WM_MOUSEMOVE消息。
    判断光标的位置是否在控件中
    m_Static.GetwindowRect(&rect);
    if(rect.PtInRect(point))
    {...MoveWindow()}
      

  5.   


    void CMoveControlDlg::OnMouseMove(UINT nFlags, CPoint point) 

    // TODO: Add your message handler code here and/or call default 
    CRect rc,rect; 
    GetClientRect(rect); 
    if(rect.PtInRect(point)) 

    m_Static.GetClientRect(rc); 
    rc.left = point.x; 
    rc.right = rc.right point.x; 
    rc.top = point.y; 
    rc.bottom = rc.bottom point.y; 
    m_Static.MoveWindow(rc); 

    CDialog::OnMouseMove(nFlags, point);