zoukankan      html  css  js  c++  java
  • MFC 绘图知识 画刷画笔 及各种图形

    1.利用画笔改变线条颜色和类型:
    CPen pen(PS_DOT,1,RGB(0,255,0));//构造画笔对象
    CClientDC dc(this);CPen *pOldPen=dc.SelectObject(&pen);//将画笔选入 DC
    dc.MoveTo(m_ptOrigin);
    dc.LineTo(point);
    dc.SelectObject(pOldPen);//恢复先前的画笔

    2.使用画刷(通常利用画刷去填充矩形区域):
    使用单色画刷
    CBrush brush(RGB(255,0,0));//构造画刷对象
    CClientDC dc(this);
    dc.FillRect(CRect(m_ptOrigin,point),&brush);//用指定的画刷去填充矩形区域

    3.使用位图画刷
    CBitmap bitmap;//构造位图对象(使用前需要初试化)
    bitmap.LoadBitmap(IDB_BITMAP1);//初试化位图对象
    CBrush brush(&bitmap);//构造位图画刷
    CClientDC dc(this);
    dc.FillRect(CRect(m_ptOrigin,point),&brush);//用指定的位图画刷去填充矩形区域

    4.使用透明画刷
    CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));//获取透
    明画刷对象指针
    CClientDC dc(this);
    CBrush *pOldBrush=dc.SelectObject(pBrush);//将透明画刷选入 DC
    dc.Rectangle(CRect(m_ptOrigin,point));
    dc.SelectObject(pOldBrush);//释放透明画刷

    注意点:
     
    1)静态方法不属于某一个具体对象,而属于类本身,在类加载的时候就已经为类静态方法
    分配了代码去,故可用 CBrush::FromHandle()形式调用。
    2)静态方法中,不能引用非静态的数据成员和方法。
    3)静态数据成员需要在类外单独做初始化,形式如:  变量类型  类名::变量名=初始值

  • 相关阅读:
    BZOJ 4032: [HEOI2015]最短不公共子串 (dp*3 + SAM)
    后缀自动机详解!
    BZOJ 3926: [Zjoi2015]诸神眷顾的幻想乡(广义后缀自动机 多串)
    BZOJ 3938 Robot
    [JSOI2008]Blue Mary开公司
    [ZJOI2017]树状数组
    [JSOI2015]非诚勿扰
    [HNOI2011]任务调度
    BZOJ 3680 吊打XXX
    POJ 3318 Matrix Multiplication
  • 原文地址:https://www.cnblogs.com/yuqilihualuo/p/2979405.html
Copyright © 2011-2022 走看看