MFC-画笔

在GDI中,用HPEN来表示画笔。H是代表句柄的意思。
在GDI中,画线,画边框(如矩形边框,圆边框,饼边框)都是采用画笔来操作的。

GDI默认的画笔是黑色,宽度为1,样式为实线的画笔。

WIN32方法

    HDC hdc = ::GetDC(m_hWnd);
    ::MoveToEx(hdc, 0, 0, NULL);

    HPEN hpen = CreatePen(PS_SOLID, 10, RGB(0, 0, 255));//创建画笔
    /*
    参数1:int iStyle  笔的样式
            PS_SOLID 创建一个实线画笔
            PS_DASH 创建一个虚线画笔,该值只有当画笔宽度等于1个设备单位或更小时才有效
            PS_DOT 创建一个点线画笔,该值只有当画笔宽度等于1个设备单位或更小时才有效
            PS_DASHDOT 创建一个点和虚线交替画笔,该值只有当画笔宽度等于1个设备单位或更小时才有效
            PS_DASHDOTDOT 创建一个双点线画笔,该值只有当画笔宽度等于1个设备单位或更小时才有效
            PS_NULL 创建一个空线画笔
            PS_INSIDEFRAME 创建一个内框线画笔,该画笔可以在WindowsGDI输出函数定义的矩形边界所生成的封闭形状的边框内绘制直线
            PS_GEOMETRIC 创建一个几何画笔
            PS_COSMETIC 创建一个装饰画笔
            PS_ALTERNATE 创建一个设置其他像素的画笔
            PS_USERSTYLE 创建一个使用由用户提供的风格矩阵的画笔
            PS_ENDCAP_ROUND 尾帽为圆形的
            PS_ENDCAP_SQUARE 尾帽为方形的
            PS_ENDCAP_FLAT 尾帽为平坦的
            PS_JOIN_BEVEL 成尖角连接
            PS_JOIN_MITET 通过setMiterLimit函数设置的当前极限值范围内斜接;否则,成尖角连接
            PS_JOIN_ROUND 成圆角连接
    参数2:参数2:int width  画笔的宽度
    参数3:COLORREF color  画笔的颜色(颜色用RGB值来描述)
        
    */

    SelectObject(hdc,hpen);
    LineTo(hdc, 200, 50);

    DeleteObject(hpen);//删除对象
    /*
    用Create创建的的就用Delete释放
    该函数删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就失效了
    
    */

    ::ReleaseDC(m_hWnd, hdc);

 

 

 

MFC方法

    CDC* pDC = GetDC();
    CPen pen(PS_SOLID, 3, RGB(0, 0, 255));//创建画笔

    CPen pen1;//创建对象
    pen1.CreatePen(PS_SOLID, 2, RGB(192, 192, 192));//初始化对象

    
    CPen* pOldPen = pDC->SelectObject(&pen);
    CPoint point = pDC->MoveTo(0, 0);
    pDC->LineTo(200, 100);

    DeleteObject(pen);
    ReleaseDC(pDC);

 

 

 

 

 

 

 

posted @ 2023-04-09 08:40  天子骄龙  阅读(87)  评论(0编辑  收藏  举报