精华内容
下载资源
问答
  • MFC画笔

    2016-12-01 20:54:14
    void CMFCApplicationView::OnDraw(CDC* pDC) { CMFCApplicationDoc* pDoc = GetDocument(); ...//创建画笔 newPen....代码很简单,创建画笔类型画笔,替换画笔,绘制图形,替换为原来画笔,最后删除画笔
    void CMFCApplicationView::OnDraw(CDC* pDC)
    {
    CMFCApplicationDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
    return;


    // TODO:  在此处为本机数据添加绘制代码




    CPen newPen;

    newPen.CreatePen(PS_SOLID,3,RGB(0,255,0));//创建画笔  newPen.CreatePen(画线类型,笔画宽度,笔画颜色)



    CPen *Oldpen;   //创建画笔指针,用来保存以前的画笔


    Oldpen = pDC->SelectObject(&pen[0]);  //把以前的画笔指针赋值给Oldpen


    /*

    绘图   此处略


    */



    pDC->SelectObject(pOldpen);//绘图完成后选择为老画笔

    newPen.DeleteObject(); //删除新画笔

    }



    代码很简单,创建画笔类型画笔,替换画笔,绘制图形,替换为原来画笔,最后删除画笔

    展开全文
  • 详解MFC画笔的使用

    千次阅读 2014-09-21 13:14:18
    详解MFC画笔的使用

    了解画笔的使用之前我们先要掌握如何使用MFC画一条线,了解MFC画线之前我们还要知道Win32 API如何画线,了解Win32 API画线之前我们先要知道DC

    DC,设备描述表,我们在不同的系统绘图就要和不同的设备驱动程序打交道,那将是相当的困难和繁琐,DC就代替程序员完成了这个工作。

    想要在窗口上绘图或显示文字就要使用DC,大体步骤如下:

    (1)声明DC句柄:HDC hdc;

    (2)获取窗口句柄:hdc=GetDC(hwnd);

    (3)画图、写文字等;

    (4)释放句柄:ReleaseDC(hwnd,hDC);

    那么,如果想要画一条,则:

    HDC hdc;
    hdc = ::GetDC(m_hWnd);
    MoveToEx(hdc, m_ptOrigin.x, m_ptOrigin.y, NULL);
    LineTo(hdc, point.x, point.y);
    ::ReleaseDC(m_hWnd, hdc);*/

    其中,m_hwnd是窗口句柄,m_ptOrigin是起点坐标,point是终点坐标

    注意,如果在某个类中使用这段代码,GetDC和ReleaseDC前面要有冒号,表示是Win32平台的函数。

    而MFC中提供了CDC类用于绘图,它有很多派生类,如CClientDC(客户区域绘图)、CWindowDC(客户区域和非客户区域绘图),

    用CClientDC完成画线操作的代码如下:

    CClientDC dc(this);
    CClientDC dc(GetParent());
    dc.MoveTo(m_ptOrigin);
    dc.LineTo(point);

    用上述代码你会发现画出来的是很细的一条黑线,那么如何更改它的样式呢,下面终于轮到我们的画笔出场了。

    编辑画笔就可以改变画线的样式,MFC的CPen类。

    我们先要创建一个画笔:CPen pen();构造函数cpen()是重载函数,其中一个有三个参数:画笔样式、宽度、颜色,其中颜色是由一个宏RGB决定,EGB有三个参数,即红绿蓝,每个参数值可设为0-255,全0即黑色,全255即白色,具体可以查看MSDN文档。

    我们就创建一个红色的粗画笔:

    CPen pen(PS_SOLID, 10, RGB(0, 0, 255));
    

    现在创建的画笔不会生效,需要将画笔应用到DC中,MFC提供SelectObject函数完成此功能,要注意的是,SelectObject函数的参数是画笔对象指针,返回值是被替换的画笔指针,我们需要创建一个CPen对象保存这个旧的指针,保证用完这个画笔后,画笔的样式恢复到初值,代码:

    CClient dc(this);
    CPen *oldPen=dc.SelectObject(&pen);
    

    然后画线:

    dc.MoveTo(m_ptOrigin);
    dc.LineTo(point);
    

    最后要恢复画笔初始样式:

    dc.SelectObject(&pOldPen);
    这样,我们可以看到画出的是一条红色的粗线。





    展开全文
  • 内含MFC画笔源程序及设计报告。其中设计报告为两个,前者以代码为主,后者以文档为主。相信可以满足你期末的需求!
  • MFC画笔使用

    2012-03-21 17:21:14
    MFC画笔的使用,包括画笔的颜色、线宽等
  • 运用mfc画笔,绘制了一条红色rgb(255,0,0)的路线,又重新用反色rgb (0,255,255)绘制了一遍,但是并没有消除之前的路线,只是单纯的路径颜色变成了rgb(0,255,255 ``` CClientDC dc(this); CPen penNew; ...
  • MFC画笔CPen类

    千次阅读 2017-03-13 21:35:07
    MFC的CPen类封装了画笔对象,其中的成员函数CreatePen实现创建画笔的功能,函数原型如下:BOOL CreatePen( int nPenStyle, //画笔风格 int nWidth, //画笔宽度 COLORREF crColor //画笔颜色 );一旦不再需要画笔,...

    MFC的CPen类封装了画笔对象,其中的成员函数CreatePen实现创建画笔的功能,函数原型如下:

    BOOL CreatePen(
        int      nPenStyle,  //画笔风格
        int      nWidth,     //画笔宽度
        COLORREF crColor     //画笔颜色
    );

    一旦不再需要画笔,记得用DeleteObject函数将其删除

    设置线型

    创建画笔的函数中,nPenStyle参数表示画笔风格,可以设置下列值之一。nPenStyle —— Long,指定画笔样式,可以是下述常数之一:
    PS_SOLID : 画笔画出的是实线。
    PS_DASH: 画笔画出的是虚线(nWidth必须不大于1)。
    PS_DOT: 画笔画出的是点线(nWidth必须不大于1)。
    PS_DASHDOT:画笔画出的是点划线(nWidth必须不大于1)。
    PS_DASHDOTDOT: 画笔画出的是点-点-划线(nWidth必须不大于1)。
    PS_NULL: 空画笔,画笔不能画图。
    PS_INSIDEFRAME:内侧实线画笔 由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象框时,画线宽度向内扩展。如指定的准确RGB颜色不存在,就进行抖动处理。

    设置线宽

    创建画笔的函数中,nWidth表示画笔线宽,是一个逻辑值,这个值越小,画出的图形线越细;这个值越大,绘制的图形线条越粗

    设置画笔颜色

    画笔颜色通过RGB宏控制,例如需要画红色的图形,RGB(255,0,0)。MFC中有许多引用颜色宏RGB,这里总结了一些常见的颜色的宏,供大家参考。

    基本颜色三种:红绿蓝,其他的颜色都是由这三种基本的颜色组成。例如,红RGB(255,0,0)、绿RGB(0, 255,0)、蓝RGB(0,0, 255)、浅粉红 #FFB6C1 255,182,193、紫色 #800080 128,0,128等。


    例如:

    CPen pen(PS_SOLID, 10, RGB(0, 0, 255));

    现在创建的画笔不会生效,需要将画笔应用到DC中,MFC提供SelectObject函数完成此功能,要注意的是,SelectObject函数的参数是画笔对象指针,返回值是被替换的画笔指针,我们需要创建一个CPen对象保存这个旧的指针,保证用完这个画笔后,画笔的样式恢复到初值,代码:

    CClient dc(this);
    CPen *oldPen=dc.SelectObject(&pen);

    然后画线:

    dc.MoveTo(m_ptOrigin);
    dc.LineTo(point);

    最后要恢复画笔初始样式:

    dc.SelectObject(&pOldPen);

    参考链接1
    参考链接2

    展开全文
  • MFC画笔的理解

    2019-03-22 23:11:34
    想要在窗口上绘图或显示文字就要使用DC,大体步骤如下: ...定义一个画笔Cpen(),接下来需要将画笔应用到DC中,MFC提供SelectObject函数完成此功能,要注意的是,SelectObject函数的参数是画笔对象指针,返...

    想要在窗口上绘图或显示文字就要使用DC,大体步骤如下:

    (1)声明DC句柄:HDC hdc;

    (2)获取窗口句柄:hdc=GetDC(hwnd);

    (3)画图、写文字等;

    (4)释放句柄:ReleaseDC(hwnd,hDC);
    定义一个画笔Cpen(),接下来需要将画笔应用到DC中,MFC提供SelectObject函数完成此功能,要注意的是,SelectObject函数的参数是画笔对象指针,返回值是被替换的画笔指针,我们需要创建一个CPen对象保存这个旧的指针,保证用完这个画笔后,画笔的样式恢复到初值。切记SelectObject函数返回的是替换前的画笔指针!!!!!

    展开全文
  • C++ MFC画笔CPen类

    千次阅读 2019-09-05 22:10:22
    MFC的CPen类封装了画笔对象,其中的成员函数CreatePen实现创建画笔的功能,函数原型如下: BOOL CreatePen( int nPenStyle, //画笔风格 int nWidth, //画笔宽度 COLORREF crColor //画笔颜色 ); 一旦不再需要...
  • MFC画笔CPen类 Benjaminpcm 2017-03-13 21:35:07 8084 收藏 15 分类专栏: windows编程 文章标签: mfc 函数 版权 MFC的CPen类封装了画笔对象,其中的成员函数CreatePen实现创建画笔的功能,函数原型如下: BOOL ...
  • 完整画笔代码+试验报告!可以实现 画矩形园椭圆,选画笔,选填充色,保存为BMP格式,打印预览等 只需要7分, 需要交作业的童鞋赶快下手了!
  • 一个小小的MFC制作,可能不是很好,但对于初学者来说应该是看的懂的!希望能够帮上需要帮助的人。
  • void CMFCGdiView::OnPen() { CClientDC dc(this);... //初始化画笔 CPen Pen(PS_SOLID,10,RGB(0,255,0)); //保存旧的画笔 CPen *cOldPen=dc.SelectObject(&Pen); //画一个矩形框 dc.Rectangle(10,10,200,2
  • MFC6.0画笔程序

    2011-11-07 19:42:58
    MFC做的画笔程序,实现了一些基本的功能。环境是vc6.0.
  • MFC——画笔和画刷

    2019-11-04 19:00:11
    MFC——画笔和画刷 一、画笔 1、创建画笔对象 MFC 中可以使用CPen创建画笔对象,其构造函数如下:CPen( int nPenStyle, //指定画笔样式 int nWidth, //指定画笔的宽度 COLORREF crColor //指定画笔样式 ...
  • Windows的图形设备接口和设备描述环境 MFC的CDC类 MFCMFC画笔、画刷、字体
  • mfc 使用画笔画线

    2021-02-23 22:28:43
    win10, vc6;新建一个单文档工程; 为视类添加鼠标左键弹起消息处理函数; 视类头文件添加一个成员变量:CPoint m_ptOrigin;...创建一个10像素宽、红色的画笔后,画线效果如下; 鼠标左键弹...
  • MFC类windows画笔

    2009-05-12 22:51:51
    利用mfc编写的 类似windows画笔功能的程序
  • MFC画笔程序代码

    2010-12-21 16:42:04
    这个程序基本上能实现画图板的全部功能,相当强大,希望能对大家爱有所帮助!
  • MFC简单创建画笔

    千次阅读 2013-05-09 19:09:36
    MFC可以使用CPen的成员函数CreatePen快速创建画笔,只需要指定风格,画笔宽度,颜色就可以。 CreatePen(int nPenStyle, int nWidth, COLORREF crColor); [说明] 用指定的样式、宽度和颜色创建一个画笔 [参数表] ...
  • MFC-画笔与画刷的使用

    千次阅读 2019-01-16 20:14:34
    定义画笔(CPen)或画刷(CBrush) 把画笔交给画家CDC::SelectObject 代码实现: void CEventMessageView::OnDraw(CDC* pDC) { CEventMessageDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 473
精华内容 189
关键字:

mfc画笔