一般从CControlBar窗体继承的控件能用EnableDock获得停靠功能。怎样才能使一般的View也能获得FrameWnd的停靠功能呢?

解决方案 »

  1.   

    可以重载它的函数,监测移动情况,如果发生移动并且距离某一个窗口距离小于一个值就直接将他移动到那里,就向Winamp
      

  2.   

    看这里的4个例子http://www.codeproject.com/docking/#Docking Windows
      

  3.   

    这是一个向左停靠的例子:
    Mainfrm.h中添加函数声明:afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);
    Mainfrm.cpp中
    BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)

    END_MESSAGE_MAP()之间添加
    ON_WM_WINDOWPOSCHANGING()定义函数:
    void CMainFrame::OnWindowPosChanging(WINDOWPOS* lpwndpos)
    {
    RECT WorkAREA;
    SystemParametersInfo(SPI_GETWORKAREA,0,&WorkAREA,0);
    if(lpwndpos->x-WorkAREA.left<50)
    lpwndpos->x=0;
    }