【RK3588嵌入式图形编程】-SDL2-鼠标输入处理

时间:2025-02-16 17:36:30

鼠标输入处理

文章目录

  • 鼠标输入处理
    • 1、概述
    • 2、鼠标移动事件
    • 3、鼠标点击事件
    • 4、鼠标点击位置
    • 5、鼠标双击
    • 6、鼠标进入和离开事件
    • 7、总结

在本文中,将介绍如何在 SDL2 中检测和处理鼠标输入事件,包括鼠标移动、按钮点击以及窗口进入/退出。

1、概述

在本文中,我们将详细介绍如何检测和响应两种主要的鼠标输入形式——用户移动光标以及用户点击鼠标按钮。

当检测到这些形式的输入时,一个 SDL_Event 会被推送到事件队列中。我们可以通过我们的事件循环捕获这些事件,并根据需要进行处理。

本文基于我们之前的学习内容,其中我们有一个初始化 SDL 并创建窗口的 Window 类,以及在主函数中设置的应用程序循环:

#include <SDL2/SDL.h>

class Window {
public:
  Window(){
    SDLWindow = SDL_CreateWindow(
      "My Program", SDL_WINDOWPOS_UNDEFINED,
      SDL_WINDOWPOS_UNDEFINED, 200, 200, 0);
  }

  void Render(){
    SDL_FillRect(GetSurface(), nullptr,
      SDL_MapRGB(
        GetSurface()->format, 50, 50, 50
      )
    );
  }

  void