你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
矩形操作类CRectGraph的设计与实现(三)
 

2)画异或矩形函数

void  CRectGraph::DrawXorRect(int nType,int nPenWidth,int penclr)

{

    LOGBRUSH logBru;

    CBrush brush;

    if (m_pView==NULL)    {   return;      }

    CDC *pDC = NULL;

    pDC = m_pView->GetDC();

    if (pDC==NULL)        {   return;      }

    CPen pen(nType, nPenWidth,penclr);

    pDC->SelectObject(pen);

    logBru.lbStyle = BS_NULL;

    brush.CreateBrushIndirect(&logBru);

    pDC->SelectObject(brush);

    pDC->SetROP2(R2_XORPEN);

    pDC->Rectangle(m_Rect);

}

3)清除实体矩形函数

void  CRectGraph::CleanRect()

{

    BOOL bRtn=TRUE;

    CRect recPaint;

    if (m_pView==NULL)    {   return;      }

    //左上点

    recPaint.left = m_Rect.left-20;

    recPaint.top = m_Rect.top -20;

    recPaint.right = m_Rect.left + 20;

    recPaint.bottom = m_Rect.bottom + 20;

    recPaint.NormalizeRect();

    m_pView->InvalidateRect(&recPaint);

    m_pView->SendMessage (WM_PAINT);

    //右上点

    recPaint.left = m_Rect.left-20;

    recPaint.top = m_Rect.top -20;

    recPaint.right = m_Rect.right + 20;

    recPaint.bottom = m_Rect.top + 20;

    recPaint.NormalizeRect();

    m_pView->InvalidateRect(&recPaint);

    m_pView->SendMessage (WM_PAINT);

    //左下点

    recPaint.left = m_Rect.left-20;

    recPaint.top = m_Rect.bottom -20;

    recPaint.right = m_Rect.right + 20;

    recPaint.bottom = m_Rect.bottom + 20;

    recPaint.NormalizeRect();

    m_pView->InvalidateRect(&recPaint);

    m_pView->SendMessage (WM_PAINT);   

    //右下点

    recPaint.left = m_Rect.right-20;

    recPaint.top = m_Rect.top -20;

    recPaint.right = m_Rect.right + 20;

    recPaint.bottom = m_Rect.bottom + 20;

    recPaint.NormalizeRect();

    m_pView->InvalidateRect(&recPaint);

    m_pView->SendMessage (WM_PAINT);   

}

4)鼠标按下函数

void  CRectGraph::RectLButtonDown(UINT nFlags, CPoint point)

{

    m_lCurPos = JudgePositionInRect(point);

    if (m_lCurPos != SUBWIN_OUT)

    {

        m_bIsDraw = true;

        CleanRect();

        DrawXorRect(0,0,RGB(255,0,0));

        m_pntPrev = point;

    }

}

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089