C++补充内容--EasyX-UI界面

esay x

其他

在这里插入图片描述

地图打印(利用二维数组)

在这里插入图片描述

在这里插入图片描述

双缓冲

当我们绘制一张图 然后另一张图盖住前一张图的某个部分的时候 由于while的存在 会导致 两张图不停的闪烁 所以加入双缓冲可以解决这个问题
在这里插入图片描述
开启双缓冲 之后等待Flush或者End 才会进行图片的绘制 不然不会进行图片的绘制,这样就可以保证每次while的执行 都是以一整套为单位进行的 执行到双缓冲状态结束或者flush 才将之前的内容同时绘制 也就是蓝色和白色同时绘制(这样虽然每次都在循环绘制 但是每一次绘制的效果一样 就不会出现闪烁) 而不是蓝色先绘制 之后白色再绘制

有以下两种方式
在这里插入图片描述
在这里插入图片描述
注意::
在这里插入图片描述
如果开启双缓冲状态之后 中途进行了函数的跳转 那么函数里要将双缓冲状态结束 不然一直没有结束双缓冲状态的话 函数里的绘图也不会进行绘制 而是等待双缓冲状态的结束

颜色和格式的设置

在这里插入图片描述
在这里插入图片描述
设置颜色和格式都是设置了一种状态 在这之后的填充都会采用这种状态 所以设置状态要在真正填充之前 所以每次填充之前最好都设置一次状态

键盘的输入

在这里插入图片描述
_kbhit() 以及_getch()都是控制台函数 会导致操作与界面割裂开 所以建议使用Get这个函数 该函数直接传入一个大写w即可包含小写w,因为他的参数是虚拟键
在这里插入图片描述

补充:VC虚拟值表 可放入GetAsyncKeyState的参数

https://blog.csdn.net/qq_42372031/article/details/105178789

界面的设计

在这里插入图片描述

按钮和鼠标

按钮

在这里插入图片描述
设置文本所占矩形的位置坐标 对于横轴 先将文本矩形的左边像素坐标移动到按钮的中间 之后 减去文本矩形像素的一半 就可以实现左边一半右边一半 就可以对齐了
纵轴同理
在这里插入图片描述

鼠标

在这里插入图片描述
先对鼠标的状态进行设置,采用枚举类型

同时定义全局变量 Message msg; 或者 ExMessage msg;

在这里插入图片描述
定义鼠标状态函数 获取在某一时刻 各个按钮内的鼠标状态

之后 获取到鼠标的位置 是否在按钮中间 并对鼠标是否点击进行判断 并返回枚举变量

鼠标状态判断函数的参数是按钮的结构体变量,也就是对每个按钮分别判断 以按钮为视角 看鼠标是否在该按钮内 一个按钮一个按钮的方式进行判断

在这里插入图片描述
参数分别是三个按钮 返回值分别是在目前的时刻 鼠标在三个按钮的状态
在绘图函数里调用判断鼠标状态
if(peekmessage(&msg,EX_MOUSE))用来判断鼠标是否点击在当前程序 有可能鼠标在该程序以外的地方操作

鼠标经过时变色

在这里插入图片描述
首先对按钮的绘制函数进行颜色的参数设置,方便后续更改 注意 颜色宏定义的类型是int类型

在这里插入图片描述
注意画按钮的函数 参数先添加一个颜色变量

之后 函数体里填充按钮颜色的参数也要改为buttoncolor 不可以再使用自己规定死的颜色了

在这里插入图片描述
之后 将状态整数放在while外面 使其作用域包含整个while

注意点:只要画面要进行动态变化的 都要放入循环里 所以 按钮绘图也要放入循环
然后用三目运算符进行传参数

查阅帮助文档

(以textwidth为例)

在这里插入图片描述
注意 要严格按照文档参数类型的规定 去写代码
如上图 规定参数是LPCTSTR类型的字符串 那么在程序中就要这样定义
在这里插入图片描述

将某段文字放在某个位置

在这里插入图片描述
用到outtextxy函数 其中参数分别为 第一个字母的x坐标 第一个字母的y坐标 文本

如下图 注意 必须是LPCTSTR类型的字符串
在这里插入图片描述

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

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

相关文章

东信免驱系列身份证阅读器串口通讯协议解析示例,适用于单片机、ARM等系统开发集成使用

完整的一次读卡流程包括: 身份证寻卡 > 身份证选卡 > 身份证读卡,三个步骤 缺一不可(见通讯协议)。 寻卡:EA EB EC ED 04 00 B0 B4 BB 返回:EA EB EC ED 05 00 00 B0 B5 BB 选卡:EA …

1.4 Unity协程

一、先说接口 接口是不能实例化的,想实例化接口,只能实例化继承了接口的类。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace InterfaceTest {interface IMyInterfa…

基于Springboot的旅游管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的旅游管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

使用STM32微控制器驱动LCD1602显示器

驱动LCD1602显示器是嵌入式系统常见的任务之一,而STM32微控制器因其灵活性和丰富的外设而成为了广泛采用的解决方案。在这篇文章中,我们将探讨如何使用STM32微控制器来驱动LCD1602显示器。我们将从STM32的GPIO配置、延时函数以及LCD1602的初始化和写入数…

MIT_线性代数笔记:第 24 讲 马尔可夫矩阵;傅里叶级数

目录 马尔可夫矩阵 Markov matrices傅里叶级数 Fourier series 本讲学习马尔可夫矩阵和傅里叶级数,两者是关于特征值和投影矩阵的应用。 马尔可夫矩阵 Markov matrices A [ 0.1 0.01 0.3 0.2 0.99 0.3 0.7 0 0.4 ] A \begin{bmatrix} 0.1 & 0.01 & 0.3 \\…

所有单片机使用的汇编语言是统一的吗?

所有单片机使用的汇编语言是统一的吗? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!&…

十大性能测试工具

这篇关于“性能测试工具”的文章将按以下顺序让您了解不同的软件测试工具: 什么是性能测试? 为什么我们需要性能测试? 性能测试的优势 性能测试的类型 十大性能测试工具 什么是性能测试? 性能测试是一种软件测试,可确…

Origin无法使用主题管理器相关功能或报错:Err, Save Theme dialog error!

问题描述 在使用origin绘图时,往往需要进行大批量绘制同样类型的图。如果每个图都不断地去修改相关设置,无疑是浪费了许多宝贵的时间。为了提高绘图效率,了解到了主题管理器,可在“工具–主题管理器”找到。 然而,当我…

自然语言处理24-T5模型的介绍与训练过程,利用简单构造数据训练微调该模型,体验整个过程

大家好,我是微学AI,今天给大家介绍一下自然语言处理24-T5模型的介绍与训练过程,利用简单构造数据训练微调该模型,体验整个过程。在大模型ChatGPT发布之前,NLP领域是BERT,T5模型为主导,T5(Text-to-Text Transfer Transformer)是一种由Google Brain团队在2019年提出的自然…

kotlin 单例

1.使用伴生对象(companion object): class Singleton private constructor() { companion object { private val instance: Singleton by lazy { Singleton() } fun getInstance(): Singleton { return instance } } /…

帮你看懂广告行业名词解释,通俗易懂!!

一、DSP(需求方平台) 广告主只要在DSP平台投放广告,由DSP平台帮助广告主在多个媒体投放广告。(即DSP帮助广告主对对接多个平台) 二、ADX(广告交易平台,Ad Exchange) 连接媒体与广…

ARM工控机Node-red使用教程

嵌入式ARM工控机Node-red安装教程 从前车马很慢书信很远,而现在人们不停探索“科技改变生活”。 智能终端的出现改变了我们的生活方式,钡铼技术嵌入式工控机协助您灵活布建能源管理、大楼自动化、工业自动化、电动车充电站等各种多元性IoT应用&#xff…

Linux 编译安装 Nginx

目录 一、前言二、四种安装方式介绍三、本文安装方式:源码安装3.1、安装依赖库3.2、开始安装 Nginx3.3、Nginx 相关操作3.4、把 Nginx 注册成系统服务 四、结尾 一、前言 Nginx 是一款轻量级的 Web 服务器、[反向代理]服务器,由于它的内存占用少&#xf…

Android设备sdcard/tf卡不识别在电脑上可以

安卓tf卡无法使用现象 系统:安卓4.4 硬件:arm设备 t卡: 64GB 10 A1 microSD 出货后有用户反馈一批sdcard/tf卡用不了. 分析过程 拆了7台问题机,除一张t卡坏了外,其余卡插到电脑上后再放到设备上恢复正常…

bulk-RNA seq测序数据分析流程

假如有bulk-RNA测序的数据:TH1,TH2,TH3三个重复(实验组),TW1,TW2,TW3三个重复(对照组) 准备工作 需要安装的软件(如FastQC、Trimmomatic、HISAT…

adb shell getevent/sendevent

#### adb shell getevent 获取点击事件 100135925:/ # getevent add device 1: /dev/input/event2name: "mtk-tpd" /dev/input/event2: 0001 014a 00000001 /dev/input/event2: 0003 0039 00000088 /dev/input/event2: 0003 0035 00000072 /dev/input/event2: 00…

【Pytorch】学习记录分享10——TextCNN用于文本分类处理

【Pytorch】学习记录分享10——PyTorchTextCNN用于文本分类处理 1. TextCNN用于文本分类2. 代码实现 1. TextCNN用于文本分类 具体流程: 2. 代码实现 # coding: UTF-8 import torch import torch.nn as nn import torch.nn.functional as F import numpy as np…

14、接口

接口 ​ 接口interface,是一组行为规范的集合,就是定义一组未实现的函数声明。谁使用接口就是参照接口的方法定义实现它们。 type 接口名 interface {方法1 (参数列表1) 返回值列表1方法2 (参数列表2) 返回值列表2... }接口命名习惯在接口名后面加上er…

【机器学习:欧氏距离 】机器学习中欧氏距离的理解和应用

【机器学习:欧氏距离 】机器学习中欧氏距离的理解和应用 距离公式二维更高的维度点以外的物体属性欧几里得距离的平方概括历史 在数学中,欧氏距离’是指欧氏空间中任意两点之间的直线距离。这种距离可以通过应用勾股定理来计算,利用两点的笛卡…

如何停止一个运行中的Docker容器

要停止一个运行中的Docker容器&#xff0c;你可以使用以下命令&#xff1a; docker stop <容器ID或容器名> 将 <容器ID或容器名> 替换为你要停止的具体容器的标识符或名称。你可以使用以下命令查看正在运行的容器&#xff1a;docker ps 这将列出所有正在运行的…