MFC 绘图

效果图:三张bmp图 + 字 + 竖线 组成

在OnPaint()函数中

        CPaintDC dc(this);CRect rect;GetClientRect(&rect); //获取客户区矩形CDC   dcBmp;             //定义并创建一个内存设备环境dcBmp.CreateCompatibleDC(&dc);             //创建兼容性DCCBitmap   bmpBackground;                    bmpBackground.LoadBitmap(IDB_BITMAP8);    //载入资源中图片(背景图)BITMAP   m_bitmap;                         //图片变量               bmpBackground.GetBitmap(&m_bitmap);       //将图片载入位图中//将位图选入临时内存设备环境CBitmap  *pbmpOld = dcBmp.SelectObject(&bmpBackground);int x = 100; //在那个位置开始画int y = 100;//调用函数显示图片(不透明)dc.BitBlt(x, y, m_bitmap.bmWidth, m_bitmap.bmHeight, &dcBmp, 0, 0, SRCCOPY);		dcBmp.SelectObject(pbmpOld); //恢复CDCbmpBackground.DeleteObject();//删除,以便后面复用该变量//对于矩形背景,也可以直接画矩形{//圆角矩形,填充颜色,边框颜色不同//CBrush frameBrush, bgbrush;//bgbrush.CreateSolidBrush(RGB(231, 243, 235));//主窗体背景色画刷//frameBrush.CreateSolidBrush(RGB(183, 211, 190));//CRgn rgn;//rgn.CreateRoundRectRgn(x, y, x + 346, y + 58, 16, 16);//圆角的窗体区域//dc.FillRgn(&rgn, &bgbrush);//dc.FrameRgn(&rgn, &frameBrush, 3, 3);}bmpBackground.LoadBitmap(IDB_BITMAP9);    //载入资源中图片(状态图)bmpBackground.GetBitmap(&m_bitmap);       //将图片载入位图中pbmpOld = dcBmp.SelectObject(&bmpBackground);//调用函数显示图片//dc.BitBlt(x + 16, y + 8, m_bitmap.bmWidth, m_bitmap.bmHeight, &dcBmp, 0, 0, SRCCOPY);//显示图片,透明,根据颜色参数进行透明,比如给的白色,白色就是透明色dc.TransparentBlt(x + 16, y + 8, m_bitmap.bmWidth, m_bitmap.bmHeight, &dcBmp, 0, 0, m_bitmap.bmWidth, m_bitmap.bmHeight, RGB(255, 255, 255));dcBmp.SelectObject(pbmpOld); //恢复CDCbmpBackground.DeleteObject();//删除bmpBackground.LoadBitmap(IDB_BITMAP10);    //载入资源中图片(LIS图标)bmpBackground.GetBitmap(&m_bitmap);       //将图片载入位图中pbmpOld = dcBmp.SelectObject(&bmpBackground);//调用函数显示图片StretchBlt显示形状可变//dcBmp.BitBlt(x + 207, y + 8, m_bitmap.bmWidth, m_bitmap.bmHeight, &dcBmp, 0, 0, SRCCOPY); //画bmp,不透明dc.TransparentBlt(x + 207, y + 8, m_bitmap.bmWidth, m_bitmap.bmHeight, &dcBmp, 0, 0, m_bitmap.bmWidth, m_bitmap.bmHeight, RGB(255, 255, 255));dcBmp.SelectObject(pbmpOld); //恢复CDCbmpBackground.DeleteObject();//删除dcBmp.DeleteDC(); //删除cdc //画字CFont new_font;//创建字体宋体格式 new_font.CreateFont(14, // nHeight0, //以逻辑单位方式指定字体中字符的平均宽度0, //指定偏离垂线和X轴在显示面上的夹角(单位:0.1度)0, //指定字符串基线和X轴之间的夹角(单位:0.1度)FW_BOLD, //指定字体磅数FALSE, //是不是斜体FALSE, //加不加下划线0, //指定是否是字体字符突出ANSI_CHARSET, //指定字体的字符集OUT_DEFAULT_PRECIS, //指定所需的输出精度CLIP_DEFAULT_PRECIS, //指定所需的剪贴精度DEFAULT_QUALITY, //指示字体的输出质量DEFAULT_PITCH | FF_SWISS, //指定字体的间距和家族_T("思源黑体") //指定字体的字样名称);//选择该字体进入PDCCFont* default_font = dc.SelectObject(&new_font);//设置字体背景为透明dc.SetBkMode(TRANSPARENT);//设置字体颜色dc.SetTextColor(RGB(0, 0, 0));//显示文本,左对齐CRect textRect;textRect.SetRect(x + 88, y + 11, x + 88 + 98, y + 11 + 14);dc.DrawText(CString("状态"), textRect, DT_SINGLELINE | DT_LEFT | DT_VCENTER);textRect.SetRect(x + 271, y + 11, x + 271 + 50, y + 11 + 14);dc.DrawText(CString("LIS"), textRect, DT_SINGLELINE | DT_LEFT | DT_VCENTER);//恢复PDC的缺省字体dc.SelectObject(default_font);//释放font对象new_font.DeleteObject();//画线CPen newPen, *oldPen;newPen.CreatePen(PS_SOLID, 2, RGB(219, 219, 219));oldPen = dc.SelectObject(&newPen);//选择改画笔dc.MoveTo(x+198, y+16);dc.LineTo(x + 198, y + 16 + 24);dc.SelectObject(oldPen); //恢复newPen.DeleteObject();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/142055.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【kafka实战】01 3分钟在Linux上安装kafka

本节采用docker安装Kafka。采用的是bitnami的镜像。Bitnami是一个提供各种流行应用的Docker镜像和软件包的公司。采用docker的方式3分钟就可以把我们想安装的程序运行起来,不得不说真的很方便啊,好了,开搞。使用前提:Linux虚拟机&…

AKKA 互相调用

SpringBoot 集成 AKKA 可以参考此文:SpringBoot 集成 AKKA 场景1:bossActor 收到信息,然后发给 worker1Actor 和 worker2Actor controller 入口,初次调用 ActorRef.noSender() Tag(name "test") RestController Req…

【MATLAB第77期】基于MATLAB代理模型算法的降维/特征排序/数据处理回归/分类问题MATLAB代码实现【更新中】

【MATLAB第77期】基于MATLAB代理模型算法的降维/特征排序/数据处理回归/分类问题MATLAB代码实现 本文介绍基于libsvm代理模型算法的特征排序方法合集,包括: 1.基于每个特征预测精度进行排序(libsvm代理模型) 2.基于相关系数corr的…

前端技术社区总目录

前端技术社区欢迎您的订阅。订阅后,您将可以查看以下所有博客内容。 注:专栏内容主要面向新手 注:每个示例都有相对应的完整代码 注:该专栏博客内容将会逐步迁移至https://blog.csdn.net/m0_60387551/article/details/128017725 …

用于自然语言处理的 Python:理解文本数据

一、说明 Python是一种功能强大的编程语言,在自然语言处理(NLP)领域获得了极大的普及。凭借其丰富的库集,Python 为处理和分析文本数据提供了一个全面的生态系统。在本文中,我们将介绍 Python for NLP 的一些基础知识&…

Sound/播放提示音, Haptics/触觉反馈, LocalNotification/本地通知 的使用

1. Sound 播放提示音 1.1 音频文件: tada.mp3, badum.mp3 1.2 文件位置截图: 1.3 实现 import AVKit/// 音频管理器 class SoundManager{// 单例对象 Singletonstatic let instance SoundManager()// 音频播放var player: AVAudioPlayer?enum SoundOption: Stri…

【C++】stack queue

stack & queue 一、容器适配器二、deque(了解)三、stack1. stack 的介绍2. 模拟实现 stack 四、queue1. queue 的使用2. 模拟实现 queue3. priority_queue(1)priority_queue 的介绍(2)priority_queue 的…

从零开始—【Mac系统】MacOS配置Java环境变量

系统环境说明 Apple M1 macOS Ventura 版本13.5.2 1.下载JDK安装包 Oracle官网下载地址 JDK下载【注:推荐下载JDK8 Oracle官网JDK8下载】 关于JDK、JRE、JVM的关系说明 JDK(Java Development Kit,Java开发工具包) ,是整个JAVA的核心&#…

系统学习Mysql

1.select语句 关键字执行顺序: 1.from 2.where 3.group by 4.select 5.having 6.order by 7.limit SQL 语句执行顺序如下: FROM: 指定要查询的表或子查询,可以包含 JOIN、WHERE 子句过滤等。 WHERE: 对 FROM 子句指定的表或子查询进行限制和…

快速使用Spring Cache

哈喽~大家好,这篇我们来看看快速使用Spring Cache。 🥇个人主页:个人主页​​​​​ 🥈 系列专栏:【日常学习上的分享】 🥉与这篇相关的文章: R…

【优测云服务平台】打造承载百倍级增长后台背后的力量-性能优化

项目介绍: 腾讯课堂是腾讯推出的专业在线教育平台,凭借技术优势,实现在线即时互动教学,打破地域的限制,让每个人都能接受优秀老师的指导和教学。 一、背景 2020年初,新冠病毒肆虐,疫情大面积爆…

从裸机开始安装操作系统

目录 一、预置知识 电脑裸机 win10版本 官方镜像 V.S. 正版系统 二、下载微软官方原版系统镜像 三、使用微PE系统维护U盘 四、安装操作系统 五、总结 一、预置知识 电脑裸机 ●只有硬件部分,还未安装任何软件系统的电脑叫做裸机。 ●主板、硬盘、显卡等必…

LLM - 通俗理解位置编码与 RoPE

目录 一.引言 二.Why 位置编码? 三.What 绝对位置编码? 1.绝对位置编码 A.Embedding Table B.公式计算 2.外推性 四.How 位置编码? 1.直接编号 2.乘法表示 3.严格的乘法表示 4.距离衰减 五.Thats RoPE! 1.Self-Attention 2.RoPE 的复数形式 3.RoP…

前端就业宝典---目录

工作时候扭螺丝,面试时候造火箭,现状就是如此。不管是背八股文,还是掌握了知识的精华,对答如流才是硬道理。本专栏就是要集具前端精华,规范、算法、架构、封装、原理等一并汇集,让前端的小伙伴有个思路。 大剑师的微信 gis-dajianshi, 欢迎一起交流,并非常期望您能够提…

Spring Cloud Alibaba Ribbon负载均衡器

文章目录 Ribbon 负载均衡器环境搭建1.依赖2.配置3.修改其默认的负载均衡策略3.1 验证 4.创建自定义的Rule4.1 MyRule()4.2 在配置config类中配置 5.饥饿加载6.我只想访问不想被别的访问 Ribbon 负载均衡器 背景 Ribbon 是一个用于客户端负载均衡的开源…

提高接口自动化测试效率:使用 JMESPath 实现断言和数据提取!

前言 做接口自动化,断言是比不可少的。如何快速巧妙的提取断言数据就成了关键,当然也可以提高用例的编写效率。笔者在工作中接触到了JMESPath,那到底该如何使用呢?带着疑惑一起往下看。 JMESPath是啥? JMESPath 是一…

ARM Soc内部总线

由于soc架构,把常用外设(控制器)集成到芯片内部,所以需要一种总线协调ARMcore与这些内部外设的通信,于是有了APB and AHB以及AXi这种片上总线。 同时要注意与常说的PC时代总线区分开: CPU总线(…

【PMP/软考】软件需求的三个主要层次:业务需求、用户需求和功能需求解释及实例解析

简述 当进行需求分析时,通常着重考虑三个主要层次:业务需求、用户需求和功能需求。业务需求关注项目与组织战略目标的一致性,用户需求明确最终用户的期望,而功能需求定义具体的系统功能和特性。这三个层次为项目管理和软件工程提…

工业蒸汽量预测(速通三)

工业蒸汽量预测(三) 特征优化1特征优化的方法1.1合成特征1.2特征的简单变换1.3用决策树创造新特征1.4特征组合 模型融合1模型优化1.1模型学习曲线1.2模型融合提升技术1.3预测结果融合策略1.4其他提升方法 特征优化 1特征优化的方法 可以通过合成特征、…

【LeetCode】力扣364.周赛题解

Halo,这里是Ppeua。平时主要更新C,数据结构算法,Linux与ROS…感兴趣就关注我bua! 1.最大二进制奇数 🍉题目: 🍉例子: 🍉 题解: 首先看题目,最大二进制奇数,在一个二…