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文件,其中包含所有网页的内容和样式。这些页面不会随着用户的操作而改变,它…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
