如何隐藏Resizing风格的对话框的边框,又能使鼠标能够拖动它改变大小???谢谢指点~~~

解决方案 »

  1.   

    处理OnNcHitTest
    自己定义边角区域,调整返回值
      

  2.   


    void CQQDlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    CDialog::OnMouseMove(nFlags, point);
    if (!nFlags & MK_LBUTTON)
    {
    CRect rect ;
    GetWindowRect(rect) ;
    if (rect.Width() - point.x < 5) 
    {
    SetCursor(::LoadCursor(NULL, IDC_SIZEWE)) ;
    m_bSizing = TRUE ;
    }
    else
    {
    m_bSizing = FALSE ;
    }
    }
    }void CQQDlg::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    CDialog::OnLButtonDown(nFlags, point);
    if (m_bSizing)
    {
    SetCursor(::LoadCursor(NULL, IDC_SIZEWE)) ;
    SendMessage(
    WM_NCLBUTTONDOWN, HTRIGHT,
    MAKELPARAM (point.x, point.y)) ;
    }
    }这段代码实现了右边框的拖拽功能,其他地方,LZ如法炮制即可。
      

  3.   

    兄弟们,我已经通过OnNcHitTest方法实现的拖动,不过会很闪,能说说问题出在哪里吗??
      

  4.   

    修改窗口的扩展风格
    加一个WS_EX_COMPOSITED属性