easyx
普通的画线图什么的
首先我们需要安装一个easyx的图形库,然后把头文件搞出来
#include <stdio.h>
#include <easyx.h>//easyx画线啥啥的图形库
#include <graphics.h>
#include <math.h>
#include <conio.h>//键盘操作的头文件
设置背景就是(要清屏之后才可以设置新的背景颜色)
setbkcolor(WHITE);cleardevice();//需要清屏后才可以设置新的背景颜色
画线条
setlinecolor(RED);//线条颜色//setlinestyle();//这个是设置线条样式的函数,但是我给忘了里面填什么了line(50, 50, 100, 100);//起点终点坐标

画图(以画圆为列子)
setfillcolor(BLACK);//设置填充颜色fillcircle(400, 300, 50);//填充的圆circle(200, 200, 50);//无填充的圆

总结画图画线
set就是设置东西
比如setbkcolor
fill就是填充
载入图片,我们线需要定义一个图片,才可以载入图片,载入图片需要图片文件和我们的源代码在同一个栏目中也就是

然后我们的代码就是
IMAGE img;loadimage(&img, "./shu.jpg", 500, 500);putimage(0, 0, &img);
输出的结果就像这样子,我的酷鼠!!!

然后我们需要接受鼠标的消息,我们需要一个鼠标消息的变量来记录每次的鼠标的消息
然后我们需要对这个消息进行判断就OK
鼠标消息函数
// 鼠标消息
// 支持如下消息:WM_MOUSEMOVE 鼠标移动WM_MOUSEWHEEL 鼠标滚轮拨动WM_LBUTTONDOWN 左键按下WM_LBUTTONUP 左键弹起WM_LBUTTONDBLCLK 左键双击WM_MBUTTONDOWN 中键按下WM_MBUTTONUP 中键弹起WM_MBUTTONDBLCLK 中键双击WM_RBUTTONDOWN 右键按下WM_RBUTTONUP 右键弹起WM_RBUTTONDBLCLK 右键双击
struct MOUSEMSG
{UINT uMsg; 当前鼠标消息bool mkCtrl; Ctrl 键是否按下bool mkShift; Shift 键是否按下bool mkLButton; 鼠标左键是否按下bool mkMButton; 鼠标中键是否按下bool mkRButton; 鼠标右键是否按下short x; 当前鼠标 x 坐标short y; 当前鼠标 y 坐标short wheel; 鼠标滚轮滚动值 (120 的倍数)
};bool MouseHit(); 检查是否存在鼠标消息
MOUSEMSG GetMouseMsg(); 获取一个鼠标消息。如果没有,就等待
void FlushMouseMsgBuffer(); 清空鼠标消息缓冲区
比如我们点击鼠标
ExMessage msg;//鼠标消息if (peekmessage(&msg, EM_MOUSE))//判断是不是鼠标消息{switch (msg.message){case WM_MOUSEMOVE://鼠标移动fillcircle(400, 300, 50);//填充的圆break;case WM_LBUTTONDOWN://鼠标点击break;default:break;}
这个的意思就是点击鼠标移动就在400 300的位置打印一个实心圆,就ok
然后我们的键盘输入也是一样的操作,只不过函数不同而已
char key = _getch();switch (key){case 72:y -= 20;printf("上键\n");break;case 80:y += 20;printf("下键\n");break;case 75:x -= 20;printf("左键\n");break;case 77:x += 20;printf("右键\n");break;}
然后如果我们要控制某一个物体移动比如控制一个圆移动就把这个圆的坐标设置为一个变量,然后通过我们的鼠标或者键盘的操作来改变这个变量的值就可以让他在不同的地方出现,这一定要在一个while循环里面!!!
fillcircle(x, y, 10);
char key=_getch();if (y <= 0 || x <= 0 || x >= 500 || y >= 500) {if (x <= 0) {x = 20;}else if (x >= 500) {x = 20;}else if (y <= 0) {y = 20;}else if (y >= 500) {y = 20;}continue;}else{switch (key){case 72:y-=20;printf("上键\n");break;case 80:y+=20;printf("下键\n");break;case 75:x-=20;printf("左键\n");break;case 77:x+=20;printf("右键\n");break;}}
但是我们会发现他这个图片如果和这个在一起,那么我们的图片就会一直闪,这就需要我们的双缓冲函数
BeginBatchDraw();//画图操作
FlushBatchDraw();
画图操作在双缓冲函数里面!
这些就是easyx的一些操作,对于其他的一些画图的应用还是比较简单的
还有一些操作比如音乐播放
注意头文件中 mmsystem.h 和 winmm.lib 需要写在 graphics.h 的下面
使用 mciSendString () 来打开和播放音乐,后面三个参数暂时不用管,都写 0
还是建议把音乐文件放在与源代码相同目录的地方
可对音乐文件取别名 alias +别名
加载静态库:#pragma comment(lib,“winmm.lib”) (放在头文件里面)
原文链接:https://blog.csdn.net/weixin_49486457/article/details/124544489
#include <graphics.h>
#include <MMStream.h>
#include <iostream>
using namespace std;
#pragma comment(lib,"winmm.lib") //调用库函数
int main() {for (int i = 100000000; ; i--) {cin >> i;if(i == 1)//如果输入1 就暂停mciSendString("close Mighty.mp3", 0, 0, 0);else//否则就播放mciSendString("play Mighty.mp3", 0, 0, 0);}getchar();closegraph();
}
okok
相关文章:
easyx
普通的画线图什么的 首先我们需要安装一个easyx的图形库,然后把头文件搞出来 #include <stdio.h> #include <easyx.h>//easyx画线啥啥的图形库 #include <graphics.h> #include <math.h> #include <conio.h>//键盘操作的头文件 设…...
记一次科学
华为云与Centos8 华为云99元Hongkong的服务器:1M,1C,2G,40G,自带不可更改的Centos 8.2 64bit 华为yum源不可以,网上找了可用的CentOS8 官方源不支持后配置yum源 # 备份 mv /etc/yum.repos.d/CentOS-Base…...
亚马逊被人差评了怎么办?
第一种: 也是最简单的做法就是通过电话或者邮件联系留差评的买家,大致意思就是按照货值的2-3倍作为赔偿,能不能把差评给删了 赔偿一个普通产品2-3倍的价格比起找服务商删一个差评几百到一千不等可以说是绰绰有余了,碰到那种愿意…...
【目标检测】YOLOv5:修改自己的网络结构
前言 YOLOv5就像一座金矿,里面有无数可以学习的东西。之前的博文一直将YOLOv5当作一个黑盒使用,只考虑模型的输入和输出,以此来对模型进行二次开发。 本篇博文将更近一层,深入到“金矿”内部,来尝试对模型结构进行替换…...
spring boot 工程整合mongodb,遇到的坑
首先说一下背景,因为其他的一个web工程有使用mongo,我想着给另外一个工程把mongo也加过来吧。也是最近做一个发送 丘比特信 的需求,觉得这个信应该是存到 mongodb。结果拿过来遇到了很大的坑,也是对版本对原理不了解吧。 下面介…...
防抖函数(最全 最干净 最好理解)
1.应用场景 1.input输入框 输入远程查询 2.邮箱,手机号验证,用户名验证 3.resize等高评率场景 2.解决问题 高频场景带来的重复渲染 等问题 多次操作 只在操作结束后再执行操作函数 3.具体实现 3.1this问题(因为settimeout是window的对…...
王小川,才是深「爱」李彦宏的那个人?
在推出中国首个类ChatGPT产品「文心一言」后,李彦宏在接受专访时断言,中国基本不会再出一个OpenAI了,「创业公司重新做一个ChatGPT其实没有多大意义,基于大语言模型开发应用机会很大,没有必要再重新发明一遍轮子。」 听…...
南京邮电大学通达学院2023《电子装配实习》报告
南京邮电大学通达学院2023《电子装配实习》报告 一 声明二 题目/实习报告提示三 例答 红笺寄 休遣玉人知 ——赠nmy 一 声明 南京邮电大学通达学院2023《电子装配实习》报告 答案更新时间:2023.04.10,已更新完成,如无错误不在更新 由于作者解答能力有限…...
Linux--tty
Linux 终端(TTY) TTY 是 Teletype 或 Teletypewriter 的缩写,原来是指电传打字机,后来这种设备逐渐键盘和显示器取代。不管是电传打字机还是键盘显示器,都是作为计算机的终端设备存在的,所以 TTY 也泛指计算机的终端(terminal)设…...
一位女程序员的自述:我是如何成为前端工程师的
今天,我想和大家分享一下我的职场经历:我是如何成为一名前端工程师的,以及我为什么会选择这个职业。此外,大家比较关心的是我们为什么要出国工作呢?也是想给自己的职业生涯做一个阶段性的总结,尤其是作为一…...
C++命名空间详解
1.什么是命名空间 在c中,名称(name)可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大,名称互相冲突性的可能性越大。另外使用多个厂商的类库时,也可能导致名称冲突。为了避免,在大规模程序…...
HDMI EDID概念梳理
EDID概念梳理: EDID数据格式: EDID包含两个部分,基本的EDID只有128个字节,还有128字节的扩展EDID,扩展部分不是必须有的。那通常电视都有扩展EDID。那EDID的详细定义在规范里面都可以找到,主要有以下几部分…...
Android端推送消息之极光推送
推送方式 轮询 --实现方式: 周期性主动获取网络中的数据; --缺点: 费电, 费流量; SMS --实现方式: 服务器端向手机端发送短信, 手机监听短信广播, 将拦截的短信信息进行显示; --优点: 省电, 省流量, 在没有网络的偏远地点也能接收到推送消息; --缺点: 费钱, 一毛钱一条;…...
2023测试工程师全新技术栈,吃透这些,起薪就15k
相信每个准备软件测试面试的同学,不管你是大学刚毕业,满心憧憬着进入公司实习、非计算机行业转行软件测试、自学测试就业还是培训后就业,都会面临着众多的疑问和不解,那就是该怎么走出着第一步,今天本文一次性告诉你&a…...
十、CNN卷积神经网络实战
一、确定输入样本特征和输出特征 输入样本通道数4、期待输出样本通道数2、卷积核大小33 具体卷积层的构建可参考博文:八、卷积层 设定卷积层 torch.nn.Conv2d(in_channelsin_channel,out_channelsout_channel,kernel_sizekernel_size,padding1,stride1) 必要参数&a…...
App 自动化测试
一、移动端测试基础 1 移动端自动化环境搭建 1.1 java安装 1.2 Android SDK安装 SDK (Software Development Kit) 软件开发工具包是软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。Android SDK 就是 Android 专属的软件开…...
考研英语知识点
考研英语知识点 一、在考研英语考试中,常考的英语时态 1.一般现在时 (Simple Present Tense) 一般现在时指的是现在正在进行或经常发生的事情。它用于描述普遍真理,频繁的习惯,以及现在正在发生的事情。例如:我每天早上六点起床…...
IPSEC实验(IPSECVPN点到点,DSVPN,IPSECVPN旁挂)
目录 一、复现实验1、防火墙的IPSECVPN点到点实验-1,拓扑图的搭建-2,配置IP,开通ping,并且设置策略-3,在网络中的IPSEC进行配置第一阶段:发出的UDP500流量第二阶段 发出的ESP流量二台防火墙建立策略禁用其它策略,在IPSEC上配置策略…...
从4k到42k,软件测试工程师的涨薪史,给我看哭了
清明节一过,盲猜大家已经无心上班,在数着日子准备过五一,但一想到银行卡里的余额……瞬间心情就不美丽了。 最近,2023年高校毕业生就业调查显示,本科毕业月平均起薪为5825元。调查一出,便有很多同学表示自己…...
tomcat作业
简述静态网页和动态网页的区别。 静态网页和动态网页是网站的两种基本类型。它们的主要区别在于它们如何生成和呈现网页内容。 静态网页是一种由服务器直接发送给用户的固定HTML文件,其中包含所有网页的内容和样式。这些页面不会随着用户的操作而改变,它…...
企业邮箱代理:谷歌企业邮箱安全防护架构与合规应用解析
前言谷歌企业邮箱凭借全球通用 IP 信誉、海外节点覆盖广等优势,成为外贸企业对接欧美、东南亚海外客户的首选办公邮箱。但国内企业直接使用,容易出现登录卡顿、邮件发送延迟、大批量开发信被限制等问题,做好针对性优化,才能最大化…...
魔兽争霸III终极优化指南:7个实用方案让经典游戏完美适配现代硬件
魔兽争霸III终极优化指南:7个实用方案让经典游戏完美适配现代硬件 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸III作为一款经典…...
为什么越来越多人放弃了传统日记本?因为他们发现了雷小兔写期刊
在这个信息爆炸的时代,我们每个人的心中都装满了故事、想法和情感。但往往,这些珍贵的内容在日常的忙碌中逐渐褪色,最终消散在时间的长河里。你是否也曾有过这样的遗憾——明明想记录下某个瞬间,却苦于没有合适的方式去表达&#…...
ssm中国篮球人才管理系统(10050)
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...
Spring Boot Microservices故障排查:10个常见问题及解决方案
Spring Boot Microservices故障排查:10个常见问题及解决方案 【免费下载链接】spring-boot-microservices Spring Boot Template for Micro services Architecture - Show cases how to use Zuul for API Gateway, Spring OAuth 2.0 as Auth Server, Multiple Resou…...
DLSS版本切换终极指南:掌控游戏性能优化的核心技术
DLSS版本切换终极指南:掌控游戏性能优化的核心技术 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 想要在《赛博朋克2077》中体验更流畅的光追效果?或是让《艾尔登法环》的画面表现更上一层楼&a…...
ARM中断控制器架构与配置实践详解
1. ARM中断控制器架构解析在嵌入式系统设计中,中断控制器作为处理器与外围设备间的关键枢纽,其性能直接影响系统的实时性和可靠性。ARM1176JZF-S处理器采用了两级中断控制架构:位于开发芯片中的TrustZone中断控制器(TZIC)和通用中断控制器(GI…...
终极免费解决方案:番茄小说下载器的完整使用指南
终极免费解决方案:番茄小说下载器的完整使用指南 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 在数字阅读时代,你是否经常遇到网络小说格式不兼容、内…...
WRF-CHEM模拟翻车?可能是你的namelist.chem没设对(附MEIC数据实战配置清单)
WRF-CHEM模拟异常排查指南:MEIC数据与namelist.chem的深度适配 当WRF-CHEM模拟结果出现异常时,很多用户会第一时间怀疑MEIC数据处理环节的问题,但实际上,namelist.chem参数与MEIC特性的匹配度才是更隐蔽的关键因素。本文将带您深入…...
codex出现Reconnecting和stream disconnected before completion:stream closed before response.complete解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...
