MFC(二)改变线条属性

news/2024/12/4 23:32:27/

1.改变画笔的颜色、宽度、粗细

在ONdraw里面写入

void CMFCpaintView::OnDraw(CDC* pdc)
{CPen pen (PS_DASH , 1,RGB ( 100, 0, 0 ) );
]

我们查看Cpen定义,发现它的普通构造函数有三个参数,于是我们构造了这样的一个对象,PS_DASH表示虚线,1表示粗细,RGB表示颜色

2.选择这个画笔

CPen *poldpen=pdc->SelectObject(&pen);
TRACE("style=%d,color=%08X,width-%d\r\n", logpen.lopnStyle,logpen.lopnColor, logpen.lopnWidth);

这个函数会将之前的画笔返回,我们用poldpen保留,因为在这个程序用完这个画笔,不能影响其他程序的绘制,另外我们可以打印poldpen,打印结果为

style = 0, color = 00000000, width - 0

表示它是原始黑色的画笔,width为0就是说它显示粗细为1

运行后,发现画笔还是有点细,我们把粗细增加到50,发现它不是虚线了,这是因为线条太粗会掩饰线型,只有为1时,线型才会起作用,才能看出它时虚线,即线型超过1时,就会失去作用

3.为了使它更粗,我们采用双线绘制

CPoint start = m_start; CPoint cur = m_cur;start.y--; cur.y--;if (m_status){pdc->MoveTo (m_start);pdc->LineTo (m_cur);pdc->MoveTo (start);pdc->LineTo (cur);}else{cur = m_stop;cur.y--;pdc->MoveTo (m_start);pdc->LineTo (m_stop);pdc->MoveTo (start);pdc->LineTo (cur);}

我们画两条线,第二条线是第一条Y坐标-1,但是在垂直方向还是只有一条,这里值得改进,但是我不会

4.在最后,将画笔设置为原来的画笔

pdc->SelectObject(poldpen);

 5.设置画刷

5.1定义两个画刷,并选择它

CBrush brush(RGB(255, 0, 0)), brush2(RGB(0, 255, 0));
CBrush *poldbru = pdc->SelectObject(&brush);

5.2填满这个矩形区域

pdc->FillRect(CRect(m_start, m_cur), &brush);

FILLRECT表示绘制一个矩形,CRect函数里的两个点分别作为矩形的左上角和右下角,创建一个表示矩形区域,第二个参数表示画刷,第二个参数如果为null,就是上下文的画刷


http://www.ppmy.cn/news/107604.html

相关文章

ai语音机器人接听自动外呼配置

一,添加能转接到机器人的拨号方案 {cti_robot_flow_exists({destination_number})} 这是判断路由条件设置的机器人话术是否存在 cti_robot ${destination_number} 启动机器人流程 set park_timeout3600 设置park最大的时间,机器人和用户最大的通话时间…

【C++】-8- string〔常见接口函数使用〕

文章目录 概览标准库中的string类「string类(了解)」﹝编码﹞ 「string类的常用函数接口」﹝1.string类对象的常见构造﹞﹝2.string类对象的修改操作﹞‹ c_str ›‹ npos ›‹ string结构 › ﹝3.string类对象的容量操作﹞‹ clear ›‹ reserve ›‹ r…

【Python教学】Python兼职有哪些?给你们分享一下最适合学生党/工作党的Python兼职攻略以及接私活经验

文章目录 前言一、做兼职的优势二、兼职种类三、基本技能要求四、平台和渠道五、案例分析六、做兼职注意事项总结 前言 Python是一种高级编程语言,它具有简单易学、代码可读性高、功能强大等特点,被广泛应用于数据分析、人工智能、Web开发等领域。Pytho…

如何使用递归 Grep 命令在目录中搜索?

在 Linux 系统中,grep 是一个强大的文本搜索工具,可以用于在文件中查找指定的文本模式。当需要在目录及其子目录中搜索特定的文本时,可以使用递归 grep 命令来快速定位目标文件。本文将详细介绍如何使用递归 grep 命令来搜索目录中的文件。 递…

别再瞎考证了!关于网络安全行业的证书,看完这篇,明明白白考证

有相关证书会让你的职业生涯锦上添花,实战技术能力必不可少。 温馨提示: 1、不满足条件的高校学生群体,可以直接报名考取NISP二级证书,满足CISP认证要求后,免考试按规定更换CISP证书,为毕业后从事网络安全…

WebrtcNode publish 流程

WebrtcNode publish 流程 1. AmqpClient - RpcServer New message received AmqpClient - RpcServer New message received {method: publish,args: [67f9309ce6e645fc8a4bb9cac6406eb2,webrtc,{transportId: 67f9309ce6e645fc8a4bb9cac6406eb2,tracks: [Array],controller: …

c#快速入门(下)

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析2 目录 👉🏻Inline和lambda委托和lambda 👉&#x1f…

深入解析CPU性能火焰图生成的内部原理

在进行CPU性能优化的时候,我们经常先需要分析出来我们的应用程序中的CPU资源在哪些函数中使用的比较多,这样才能高效地优化。一个非常好的分析工具就是《性能之巅》作者 Brendan Gregg 发明的火焰图。 我们今天就来介绍下火焰图的使用方法,以…