C++ EasyX学习之鼠标操作详解

目录
  • 基础代码
  • 进阶编程

基础代码

功能:移动画点,左键画方块,右键退出。

#include <graphics.h>
#include <conio.h>

int main()
{
    // 初始化图形窗口
    initgraph(640, 480);

    MOUSEMSG m;        // 定义鼠标消息

    while (true) {
        ExMessage m;//定义一个消息变量
        m = getmessage(EM_MOUSE);//获取鼠标消息
        switch (m.message)
        {
        case WM_MOUSEMOVE:
            // 鼠标移动的时候画红色的小点
            putpixel(m.x, m.y, RED);
            break;

        case WM_LBUTTONDOWN:
            // 画一个小方块
            rectangle(m.x - 5, m.y - 5, m.x + 5, m.y + 5);
            break;

        case WM_RBUTTONUP:
            return 0;    // 按鼠标右键退出程序
        }
    }

    // 关闭图形窗口
    closegraph();
    return 0;
}

输出:

进阶编程

1.jpg:

2.jpg:

给鼠标添加标志,按键做出响应。

#include <graphics.h>
#include <conio.h>

int main()
{
    //定义图片变量
    IMAGE move,click;
    // 定义鼠标消息
    MOUSEMSG m;
    // 初始化图形窗口
    initgraph(640, 480);
    int w = 50, h = 50;
    loadimage(&move, _T("1.jpg"), w, h);
    loadimage(&click, _T("2.jpg"), w, h);

    while (true) {
        ExMessage m;//定义一个消息变量
        m = getmessage(EM_MOUSE);//获取鼠标消息
        switch (m.message)
        {
        case WM_MOUSEMOVE:
            // 鼠标移动
            cleardevice();
            putimage(m.x-w/2, m.y-h/2, &move);
            break;

        case WM_LBUTTONDOWN:
            // 鼠标点击
            cleardevice();
            putimage(m.x - w / 2, m.y - h / 2, &click);
            break;

        case WM_RBUTTONUP:
            return 0;    // 按鼠标右键退出程序
        }
    }

    // 关闭图形窗口
    closegraph();
    return 0;
}

输出:

小鸟会根跟随鼠标的位置移动。

以上就是C++ EasyX学习之鼠标操作详解的详细内容,更多关于C++ EasyX鼠标操作的资料请关注我们其它相关文章!

(0)

相关推荐

  • C++使用easyx画实时走动的钟表

    这次的任务是用c++画出实时走动的钟表,并且与当前系统的时间一致. 由于我们使用的是c++语言,我们更需要用这个例子来提高我们对面向对象程序设计的理解. 我们首先需要分析出需求,“画一个能够实时走动的钟表”,根据需求我们可以好处两个对象,钟表对象与画图对象,所以我们大致先建立两个类,Clock类与Paint类. Clock类中的成员变量都有:表的中心坐标x与y.表的时间(时.分.秒).表的大小r(即半径).表盘的颜色color. Clock类中无其他函数,只有用于初始化的构造函数. Paint类

  • C++基于EasyX库实现拼图小游戏

    用C++的EasyX库做的拼图小游戏,供大家参考,具体内容如下   记录一下自己做的第一个项目,还有一些改进空间QWQ,可以支持难度升级,但是通关判断似乎有点小问题肯定不是我菜通不了关 . #pragma once #include <iostream> #include <graphics.h> #include <Windows.h> #include <algorithm> #include <easyx.h> #include <c

  • c++使用Easyx图形库实现飞机大战

    公共的头文件        common.h #pragma once #include <graphics.h> #include <iostream> #include <string> #include <map> #include <list> #include <thread> #include <vector> #include <ctime> #include <mmsystem.h>

  • C++基于EasyX实现简单扫雷游戏

    本文实例为大家分享了C++ EasyX实现简单扫雷游戏的具体代码,供大家参考,具体内容如下 [实现代码] #include <cmath> #include <time.h> #include <easyx.h> #include <conio.h> using namespace std; #define Size 500 //定义窗口大小 #define SquareSize 50 //定义格子大小 #define BackGroundColor LIG

  • C++基于easyx图形库实现推箱子游戏

    本文实例为大家分享了C++实现推箱子游戏的具体代码,供大家参考,具体内容如下 头文件: #include<stdio.h> #include<stdlib.h> //#include<Windows.h> #include<conio.h> #include<graphics.h> #include<stdbool.h> //播放音乐需要的头文件 #include <mmsystem.h> #pragma comment(

  • C++基于EasyX图形库实现2048小游戏

    C++ 和 EasyX 图形库,实现2048小游戏,供大家参考,具体内容如下 MainGame2048.cpp /** Name: Game2048CoreClass*/ #include<iostream> #include<graphics.h> #include<stdio.h> #include<windows.h> #include<conio.h> #include<stdio.h> #include"Game2

  • C++用easyx图形库实现障碍跑酷小游戏

    用easyx图形库做一个简单的c++小游戏-障碍跑酷 开发环境:visual c++6.0 库:easyx图形库 下载地址 EasyX(c++图形库) v20200806 官方安装免费版 当时我原本是想模仿做一个Flappy Bird的小游戏,在想如何写的时候突然有了新的想法,就有了这个障碍跑酷的小游戏.(这是我之前写的代码,没有很注重规范,看上去有点乱,但我很尽力的都标上了注释.) 游戏介绍: 1.操控小球,小球一开始只具有左a,右d与跳跃w的功能 2.可根据按1,2,3,4调节小球的跳跃高度

  • C++ EasyX学习之鼠标操作详解

    目录 基础代码 进阶编程 基础代码 功能:移动画点,左键画方块,右键退出. #include <graphics.h> #include <conio.h> int main() { // 初始化图形窗口 initgraph(640, 480); MOUSEMSG m; // 定义鼠标消息 while (true) { ExMessage m;//定义一个消息变量 m = getmessage(EM_MOUSE);//获取鼠标消息 switch (m.message) { case

  • Python Pandas学习之基本数据操作详解

    目录 1索引操作 1.1直接使用行列索引(先列后行) 1.2结合loc或者iloc使用索引 1.3使用ix组合索引 2赋值操作 3排序 3.1DataFrame排序 3.2Series排序 为了更好的理解这些基本操作,下面会通过读取一个股票数据,来进行Pandas基本数据操作的语法介绍. # 读取文件(读取保存文件后面会专门进行讲解,这里先直接调用下api) data = pd.read_csv("./data/stock_day.csv")  # 读取当前目录下一个csv文件 # 删

  • MySQL数据库学习之查询操作详解

    目录 1.示例表内容 2.简单查询 3.给列起别名 4.列运算 5.条件查询 1.示例表内容 dept表: +--------+------------+----------+ | DEPTNO | DNAME | LOC | +--------+------------+----------+ | 10 | ACCOUNTING | NEW YORK | | 20 | RESEARCH | DALLAS | | 30 | SALES | CHICAGO | | 40 | OPERATIONS

  • MySQL学习之数据更新操作详解

    目录 UPDATE 语句 UPDATE 语句练习① UPDATE 语句练习② UPDATE 语句练习③ UPDATE 语句的表连接 UPDATE 语句练习④ UPDATE 语句 UPDATE 语句用于修改表的记录,语法如下 UPDATE IGNORE 表名 SET 字段1=值1, 字段2=值2, 字段3=值3, ...... WHERE 条件1 ...... ORDER BY ...... LIMIT ......; -- 注意:IGNORE - 是可选条件,使用后,会针对有冲突的修改记录忽略

  • Python+Selenium键盘鼠标模拟事件操作详解

    目录 元素的基本操作 鼠标键盘模拟事件操作 利用 Keys 模块模拟键盘操作事件 利用 Action 类模拟鼠标操作事件 当我们定位到具体的一个元素的时候就可以对这个元素进行具体的操作,比如之前章节所执行的 click 操作.这是最简单的操作,webdriver 还有其他的操作.比如元素的基本操作(点击.输入.清除),还有一些高级操作如鼠标键盘模拟事件.弹出框处理.多页面切换等… 这些都是需要我们了解的内容,也是在做自动化测试的时候经常遇到的一些基本场景.今天这一章节,我们就先来学习一下元素的基

  • opencv3/python 鼠标响应操作详解

    鼠标回调函数: def setMouseCallback( windowName, #窗口名称 onMouse, #鼠标响应处理函数 param=None) #处理函数的ID event鼠标事件: event: EVENT_LBUTTONDBLCLK = 7 左键双击 EVENT_LBUTTONDOWN = 1 左键点击 EVENT_LBUTTONUP = 4 左键释放 EVENT_MBUTTONDBLCLK = 9 中间释放 EVENT_MBUTTONDOWN = 3 中间点击 EVENT_M

  • Go语言学习笔记之文件读写操作详解

    目录 文件写 文件读 小结 文件操作比较多,分为几篇来写吧.首先是文件的读写,在平时的工程化操作中使用最多. 文件写 样例代码如下 package main import ( "bufio" "fmt" "io" "os" ) //写文件 func DoWriteFile() error { _filePath := "./test.txt" _file, _err := os.OpenFile(_file

  • Git基础学习之tag标签操作详解

    目录 共享标签 推送本地的指定标签 推送本地所有为推送的标签 查看结果 删除标签 删除本地标签 删除远程标签 修改标签指定提交的代码 标签在.git目录中的位置 本文中所使用到的命令 共享标签 默认情况下,git push 命令并不会传送标签到远程仓库服务器上. 在创建完标签后,你必须显式地(手动)推送标签到远程服务器上. 需要将标签推送到远程版本库作为一个发行版本,可以通过以下两种方式: 推送本地的指定标签 这个过程就像共享远程分支一样,你可以执行命令: git push origin <ta

  • MySQL数据库基础学习之JSON函数各类操作详解

    目录 前言 一.JSON语法规则 二.JSON函数 1.JSON_CONTAINS(json_doc,value)函数 2.JSON_SEARCH()函数 3.JSON_PRETTY(json_doc)函数 4.JSON_DEPTH(json_doc)函数 5.JSON_LENGTH(json_doc[,path])函数 6.JSON_KEYS(json_doc[,path])函数 7. JSON_INSERT(json_doc,path,val[,path,val] ...)函数 8.JSON

  • Python学习之字符串常用操作详解

    目录 1.查找字符串 2.分割字符串 3.连接字符串 4.替换字符串 5.移除字符串的首尾字符 6.转换字符串的大小写 7.检测字符串(后续还会更新) 1.查找字符串 除了使用index()方法在字符串中查找指定元素,还可以使用find()方法在一个较长的字符串中查找子串.如果找到子串,返回子串所在位置的最左端索引,否则返回-1. 语法格式: str.find(sub[,start[,end]]) 其中,str表示被查找的字符串.sub表示查找的子串.start表示开始索引,缺省时为0.end表

随机推荐