RT.对话的Border有Resizing属性,但是TabCtrl没有,怎么才能让它有呢?

解决方案 »

  1.   

    你要自己派生一个类来实现响应OnNcHitTest处理即可
      

  2.   

    LRESULT CTreeFile::OnNcHitTest(CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    CRect rect;
    GetWindowRect(&rect);
    if(point.x <= rect.left+3)
    return HTLEFT;
    else if(point.x >= rect.right-3)
    return HTRIGHT;
    else if(point.y <= rect.top+3)
    return HTTOP;
    else if(point.y >= rect.bottom-3)
    return HTBOTTOM;
    else if(point.x <= rect.left+10 && point.y <= rect.top+10)
    return HTTOPLEFT;
    else if(point.x >= rect.right-10 && point.y <= rect.top+10)
    return HTTOPRIGHT;
    else if(point.x <= rect.left+10 && point.y >= rect.bottom-10)
    return HTBOTTOMLEFT;
    else if(point.x >= rect.right-10 && point.y >= rect.bottom-10)
    return HTBOTTOMRIGHT; return CTreeCtrl::OnNcHitTest(point);
    }
      

  3.   


    LRESULT CTreeFile::OnNcHitTest(CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    CRect rect;
    GetWindowRect(&rect);
    if(point.x <= rect.left+3)
    return HTLEFT;
    else if(point.x >= rect.right-3)
    return HTRIGHT;
    else if(point.y <= rect.top+3)
    return HTTOP;
    else if(point.y >= rect.bottom-3)
    return HTBOTTOM;
    else if(point.x <= rect.left+10 && point.y <= rect.top+10)
    return HTTOPLEFT;
    else if(point.x >= rect.right-10 && point.y <= rect.top+10)
    return HTTOPRIGHT;
    else if(point.x <= rect.left+10 && point.y >= rect.bottom-10)
    return HTBOTTOMLEFT;
    else if(point.x >= rect.right-10 && point.y >= rect.bottom-10)
    return HTBOTTOMRIGHT; return CTreeCtrl::OnNcHitTest(point);
    }