C++:按键控制头文件Button.h


°★.☆° .★·°∴°★.°·∴°☆ ·°∴° ☆..·
☆°★°∴°°∴ ☆°.·★°∴°.
   ◢◣。        ◢◣。     ☆圣★
  ◢★◣。     ◢★◣。     ★诞☆
 ◢■■◣。   ◢■■◣。     ☆节★
◢■■■◣。 ◢■■■◣。      ★快☆
︸︸||︸︸ !!︸︸||︸︸         ☆乐★
祝你圣诞节快乐 ^_^!!☆°★°∴°°∴ ☆°.·★°∴°.
°★.☆° .★·°∴°★.°·∴°☆ ·°∴° ☆..·.

还记得C++鼠标点击吗?

。。。。。。

我费尽心思,整理了一份按键控制头文件,代码如下:

代码</>:

名字就叫Button.h

#ifndef BUTTON_H
#include <bits/stdc++.h>    
#include <conio.h>          
#include <windows.h>       
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1 : 0)
using namespace std;
void SHOW()
{
	printf("Hello!欢迎使用Button使用向导!");
	Sleep(700);
	printf("\n下面我就简单介绍一下Button头文件。");
	Sleep(700);
	printf("\n1、GetPos没有实际作用。");
	Sleep(700);
	printf("\n2、GOTOXY可以移动光标至(x, y)。");
	Sleep(700);
	printf("\n3、__color可以更改颜色。");
	Sleep(700);
	printf("\n4、Button结构体用来创建按钮,");
	Sleep(700);
	printf("\n结构是:Button 按钮名称 = NewButton(按钮x坐标, 按钮y坐标, 按钮颜色, 按钮内容)。");
	Sleep(700);
	printf("\n5、Preserve用来判断,");
	Sleep(700);
	printf("\n结构是:if (Preserve(按钮名称) == ture) { 执行语句 }。");
	_getch();
}
void GetPos(POINT &pt)
{
	HWND hwnd = GetForegroundWindow();
	GetCursorPos(&pt);
	ScreenToClient(hwnd, &pt);
	pt.y = pt.y / 16, pt.x = pt.x / 8;
	swap(pt.x, pt.y);
}
void GOTOXY(int x, int y)
{
	COORD pos; pos.X = y; pos.Y = x;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
void __color(int a)
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), a);
}
struct Button
{
	int x, y, color;
	const char *name;
	int len;
};
Button NewButton(int x, int y, int color, const char *name)
{
	Button t;
	t.x = x, t.y = y, t.name = name;
	t.color = color;
	t.len = strlen(name);
	return t;
}
bool Preserve(Button A)
{
	GOTOXY(A.x, A.y), __color(A.color), printf("%s", A.name);
	POINT pt;
	GetPos(pt);
	if (pt.x == A.x && (pt.y >= A.y&&pt.y <= A.y + A.len))
	{
		__color(112), GOTOXY(A.x, A.y), printf("%s", A.name);
		if (KEY_DOWN(MOUSE_MOVED)) return 1;
	}
	return 0;
}
#endif

函数㏒㏑ :

详见函数SHOW()。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

集合-02

文章目录 1.Set集合1.1Set集合概述和特点1.2Set集合的使用 2.TreeSet集合2.1TreeSet集合概述和特点2.2TreeSet集合基本使用2.3自然排序Comparable的使用2.4比较器排序Comparator的使用2.5两种比较方式总结 3.HashSet集合3.1HashSet集合概述和特点3.2HashSet集合的基本应用3.3哈…

Java 格式化时间以及计算时间

Java 格式化时间以及计算时间 package com.zhong.datetimeformat;import java.time.*; import java.time.format.DateTimeFormatter;public class DateTimeFormats {public static void main(String[] args) {// 创建一个日期格式化器对象DateTimeFormatter dateTimeFormatter…

【chisel】 环境,资料

Chisel环境搭建教程&#xff08;Ubuntu&#xff09; 根据上边的link去安装&#xff1b; 目前scala最高版本用scala-2.13.10,太高了 没有chisel的库文件支持&#xff1b;会在sbt下载的过程中报错&#xff1b; [error] sbt.librarymanagement.ResolveException: chisel chisel目…

深入理解网络通信和TCP/IP协议

目录 计算机网络是什么&#xff1f; 定义和分类 计算机网络发展简史 计算机网络体系结构 OSI 七层模型 TCP/IP 模型 TCP/IP 协议族 TCP/IP 网络传输中的数据 地址和端口号 MAC地址 IP 地址 端口号 为什么端口号有65535个&#xff1f; 综述 TCP 特性 TCP 三次握…

oc渲染器初始参数怎么设置?oc渲染器初始参数怎么弄

OC渲染器以其用户友好的界面、卓越的渲染品质而受到众多初学者的欢迎&#xff0c;而且它使得创建逼真的视觉效果变得轻而易举。对于产品展示、建筑设计以及室内布局渲染来说&#xff0c;OC渲染器都能表现出优异的性能。下面&#xff0c;我们将介绍新手如何进行OC渲染器的基本初…

【MySQL】学习并使用DQL实现排序查询和分页查询

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-SP91zTA41FlGU0Ce {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

codeforces 1300分

文章目录 1.[B. Random Teams](https://codeforces.com/contest/478/problem/B)2.[D. Anti-Sudoku](https://codeforces.com/problemset/problem/1335/D)3.[B. Trouble Sort](https://codeforces.com/problemset/problem/1365/B)4.[Problem - 1401C - Codeforces](https://code…

【DDD】学习笔记-数据分析模型

在 Eric Evans 提出领域驱动设计之前&#xff0c;对企业系统的分析设计多数采用数据模型驱动设计。如前所述&#xff0c;这种数据模型驱动设计就是站在数据的建模视角&#xff0c;逐步开展分析、设计与实现的建模过程。通过对数据的正确建模&#xff0c;设计人员就可以根据模型…

Python新春烟花盛宴

写在前面 哈喽小伙伴们&#xff0c;博主在这里提前祝大家新春快乐呀&#xff01;我用Python绽放了一场新春烟花盛宴&#xff0c;一起来看看吧&#xff01; 环境需求 python3.11.4及以上PyCharm Community Edition 2023.2.5pyinstaller6.2.0&#xff08;可选&#xff0c;这个库…

房企数字化选型-智慧案场:来访到成交,5大环节缺一不可

在“低增长、低利润、高集中度”的房地产存量时代&#xff0c;数字化成为房企突围的必经之路。但面对预算缩减&#xff0c;哪些数字化场景值得优先投入&#xff1f;又有哪些实践案例经验可以借鉴&#xff1f; 【需求与挑战】 线下案场是房地产营销转化成交的最关键环节&#x…

中国古代初入相补原理

中国古代初入相补原理 赵爽&#xff08;约182---250年&#xff0c;东汉末至三国时代吴国人&#xff09;&#xff0c;为《周髀算经》做注时记述了勾股定理的理论证明&#xff0c;将勾股定理表述为&#xff1a;“勾股各自乘&#xff0c;并之&#xff0c;为弦实。开方除之&#xf…

Facebook群控:利用IP代理提高聊单效率

在当今社交媒体竞争激烈的环境中&#xff0c;Facebook已经成为广告营销和推广的重要平台&#xff0c;为了更好地利用Facebook进行推广活动&#xff0c;群控技术应运而生。 本文将深入探讨Facebook群控的定义、作用以及如何利用IP代理来提升群控效率&#xff0c;为你提供全面的…

计算机毕业设计 | vue+springboot 教务管理系统(附源码)

1&#xff0c;项目背景 随着我国高等教育的发展&#xff0c;数字化校园将成为一种必然的趋势&#xff0c;国内高校迫切需要提高教育工作的质量与效率&#xff0c;学生成绩管理工作是高校信息管理工作的重要组成部分&#xff0c;与国外高校不同&#xff0c;他们一般具有较大规模…

impala与kudu进行集成

文章目录 概要Kudu与Impala整合配置Impala内部表Impala外部表Impala sql操作kuduImpala jdbc操作表如果使用了Hadoop 使用了Kerberos认证&#xff0c;可使用如下方式进行连接。 概要 Impala是一个开源的高效率的SQL查询引擎&#xff0c;用于查询存储在Hadoop分布式文件系统&am…

图论练习4

内容&#xff1a;染色划分&#xff0c;带权并查集&#xff0c;扩展并查集 Arpa’s overnight party and Mehrdad’s silent entering 题目链接 题目大意 个点围成一圈&#xff0c;分为对&#xff0c;对内两点不同染色同时&#xff0c;相邻3个点之间必须有两个点不同染色问构…

音箱、功放播放HDMI音频解决方案之HDMI音频分离器HHA

HDMI音频分离器HHA简介 HDMI音频分离器HHA具有一路HDMI信号输入&#xff0c;转换成一路HDMI信号、一路5.1光纤音频信号、一路5.1 SPDIF/同轴音频信号和一路模拟左右声道立体声信号输出&#xff0c;同时还支持EDID存储及兼容HDCP功能&#xff1b;分辨率最高支持1920*1080p&#…

【已解决】c++ qt选中该行为什么该列部分变色

笔者开启了QTableView中交替行改变颜色&#xff0c;发现笔者自定义绘制的水平滚动条&#xff0c;在选中后不发生颜色改变&#xff0c;这让笔者很疑惑。笔者查阅资料后发现&#xff0c;自定义绘制的控件&#xff0c;要自身设置颜色。当笔者解决了这个问题时&#xff0c;顺手就将…

视频孪生教育实训平台 助力高校打通产教融合最后一公里

数字孪生成高校产教融合破局点 随着我国经济的高质量发展&#xff0c;产业结构不断进行调整&#xff0c;数字经济已成为一大发展趋势。数字孪生作为推动千行百业数字化转型、促进数字经济发展的重要抓手&#xff0c;被众多企业高度关注&#xff0c;并在工业、能源、城市、交通…

Maven提示Failure to find com.oracle:ojdbc14:jar:10.2.0.4.0

目录 问题 解决方案 1、下载oracle的驱动jar包 2、安装到本地仓库 3、检查本地仓库是否成功安装 4、Maven先clean &#xff0c;再install。 问题 项目引入Oracle依赖后报错&#xff0c;显示为红色。 解决方案 1、下载oracle的驱动jar包 首先我们要去下载一个oracle的…

【Linux】解决:为什么重复创建同一个【进程pid会变化,而ppid父进程id不变?】

前言 大家好吖&#xff0c;欢迎来到 YY 滴Linux 系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…