EasyX添加图片+鼠标操作

简介: EasyX添加图片+鼠标操作

添加图片

定义图片变量名

IMAGE 图片变量名;

3.1.png

载入图片函数

loadimage(&图片变量名, "1.jpg", int width, int height);
 (说明:    width是图片拉伸后的宽度,height是图片拉伸后的高度。)

显示图片函数

putimage(int x, int y, &图片变量名);
 (说明:   x 是图片的左上角x轴坐标,y是图片的左上角y轴坐标。)

如果仅仅是这样,会出现红线,要消除红线,请看:


EasyX字符集的问题(loadimage下面出现红线)_小吉.cpp的博客-CSDN博客


但是仅仅是这样操作,会出现图片不是透明的,如果想要把图片变成题目的,请看


(2条消息) EasyX添加透明图片_小吉.cpp的博客-CSDN博客


鼠标操作

ExMessage m;//定义一个消息变量
m = getmessage(EM_MOUSE);//获取鼠标消息
switch (m.message)
{
}

image.png

下面程序里面出现了 MOUSEMSG m,其实相当于建立了一个结构体

(但是程序里面不用写这么完整)(IMAGE也同理)

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 的倍数)
};

注意下面的程序里面,鼠标移动画小红点的操作

#include<easyx.h>
#include <graphics.h>
#include <conio.h>
int main()
{
  initgraph(640, 480);
  setbkcolor(RGB(164, 225, 202));
  cleardevice();
  MOUSEMSG m;   // 定义鼠标消息
  while (1) {
    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;
}

上面是单击的作用

如果想要获取双击的消息,加上EX_DBCLICKS

initgraph(800,600,EX_DBCLICKS);

⭐作为一个真ikun,怎么不把我坤哥添加到程序里面呢

下面是把图片添加到程序里面的方法.

3.2.png

右击框起来的地方,选择“打开所在文件夹”

3.3.png

然后把图片复制到里面,别忘了改文件名hh


#include<easyx.h>
#include <graphics.h>
#include <conio.h>
int main()
{
  IMAGE move, click;
  // 定义鼠标消息
  MOUSEMSG m;
  // 初始化图形窗口
  initgraph(1000, 800);
  setbkcolor(RGB(225, 224, 245));//数组背景颜色
  cleardevice();
  int w = 50, h = 50;
  loadimage(&move, _T("1.jpg"), w, h);
  loadimage(&click, _T("2.jpg"), w, h);
  while (1) {
    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;
}

运行效果

3.4.png

按左键后

3.5.png

(是不是暗藏玄只因,兄弟们)

相关文章
|
8月前
|
存储 编解码 Windows
EasyX图形库学习(三、用easyX控制图形界面中的小球、图片-加载、输出)
EasyX图形库学习(三、用easyX控制图形界面中的小球、图片-加载、输出)
|
5月前
|
图形学
小功能⭐️不用传参,Unity获得鼠标悬浮处的物体、UI!
小功能⭐️不用传参,Unity获得鼠标悬浮处的物体、UI!
|
7月前
|
存储 Cloud Native Linux
OpenCV鼠标操作(画红色方框截取图像)
OpenCV鼠标操作(画红色方框截取图像)
|
8月前
Qt鼠标悬浮在图片上显示删除字样
Qt鼠标悬浮在图片上显示删除字样
|
C++ 计算机视觉 Python
VS+QT+PCL点云窗体程序显示编辑保存
VS+QT+PCL点云窗体程序显示编辑保存
316 0
VS+QT+PCL点云窗体程序显示编辑保存
|
前端开发 程序员
当鼠标光标放在一张图片上,如何显示另一张图片?
当鼠标光标放在一张图片上,如何显示另一张图片?
297 1
尝试用easyx窗口实现鼠标的操作
尝试用easyx窗口实现鼠标的操作
185 0