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

 更新时间:2022年07月07日 14:25:25   作者:代码骑士  
EasyX是针对C/C++的图形库,可以帮助使用C/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鼠标操作的资料请关注脚本之家其它相关文章!

相关文章

  • C++与C语言常用的语法对比

    C++与C语言常用的语法对比

    这篇文章主要介绍了C++与C语言常用的语法对比,文章基于c++和C语言的相关资料展开两者的语法相互对比,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-04-04
  • C++实现LeetCode(99.复原二叉搜索树)

    C++实现LeetCode(99.复原二叉搜索树)

    这篇文章主要介绍了C++实现LeetCode(99.复原二叉搜索树),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++之list容器介绍及使用方式

    C++之list容器介绍及使用方式

    这篇文章主要介绍了C++之list容器介绍及使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • VC中SendMessage和PostMessage的区别

    VC中SendMessage和PostMessage的区别

    这篇文章主要介绍了VC中SendMessage和PostMessage的区别,较为全面的分析了SendMessage和PostMessage运行原理及用法上的不同之处,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C++动态内存管理详解

    C++动态内存管理详解

    今天小编就为大家分享一篇关于关于C++动态分配内存的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2021-08-08
  • Qt无边框窗口拖拽和阴影的实现

    Qt无边框窗口拖拽和阴影的实现

    自定义窗口控件的无边框,窗口事件由于没有系统自带边框,无法实现拖拽拉伸等事件的处理,本文主要介绍了Qt无边框窗口拖拽和阴影的实现,感兴趣的可以了解一下
    2024-01-01
  • C语言实现单元测试的示例详解

    C语言实现单元测试的示例详解

    单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。这篇文章主要为大家介绍了C语言实现单元测试的方法,需要的可以参考一下
    2022-09-09
  • C++分析构造函数与析造函数的特点梳理

    C++分析构造函数与析造函数的特点梳理

    本文对类的构造函数和析构函数进行总结,主要包括了构造函数的初始化、重载、使用参数和默认参数,拷贝构造函数和析构函数,希望能帮助读者在程序开发中更好的理解类,属于C/C++基础
    2022-05-05
  • QT实现简单五子棋游戏

    QT实现简单五子棋游戏

    这篇文章主要为大家详细介绍了QT实现简单五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • C++数组指针和二维数组详情

    C++数组指针和二维数组详情

    这篇文章主要介绍了C++数组指针和二维数组,指针数组和二维数组在应用中常用于函数传参,下面我们就来看看指针数组和二维数组在应用中的具体使用吧,需要的朋友可以参考一下
    2021-10-10

最新评论