PhotoShop6.0“裁切”工具,使用时的选择框窗口(Wnd)的边框(Frame)看上去像流动的。是怎么实现的呀,还有边角上的8个小方块,谁能告诉我是怎么实现的?

解决方案 »

  1.   

    他那个窗口大小位置不变的时候,边线也是流动的。应该不是靠变化线的端点坐标实现的。顺便再问个窗口边框的问题。我的窗口自己画的边框,静止的时候效果还可以,可是拖动的时候,就会有很粗的边框阴影。不能像PhotoShop裁切 那个框,他被拖动的时候,就没有我说的那种边框阴影。谁知道怎么回事?
    我的代码很简单:
    class CSelectWnd : public CWnd
    {
    ... ...
    };
    创建:
    m_selectwnd.Create(NULL, _T("selectwnd"), WS_THICKFRAME, rect, this, 0);
    //  自己画边框
    void CSelectWnd::OnNcPaint() 
    {
    // TODO: Add your message handler code here
    CPaintDC dc(this); CRect rt;
    GetClientRect(&rt); CPen pen(PS_DASHDOTDOT, 1, RGB(0, 0, 0)); CPen *m_poldpen = dc.SelectObject(&pen);
    dc.MoveTo(0, 0);
    dc.LineTo(rt.Width(), 0);
    dc.LineTo(rt.Width(), rt.Height());
    dc.LineTo(0, rt.Height());
    dc.LineTo(0, 0); dc.SelectObject(&m_poldpen);
    }
    结果很多问题,和人家的效果差十万八千里,边框还画不全。更不用说边角上的8个方块了,我都没写。谁能帮我实现PhotoShop6.0“裁切”窗口的那种效果?