取绝对鼠标状态
按照绝对坐标系统,获取设备内部记录的鼠标状态,其中包括 3 个鼠标按键、光标位置和滚轮值。
语法
cpp
class RX784::Device {
Status getAbsMouseState(
MouseState& mouseState
);
};
class RX784::Device {
Status getAbsMouseState(
MouseState& mouseState
);
};
e
类名 基类 公开 备注 RX784设备 ✔
方法名 返回值类型 公开 备注 取绝对鼠标状态 整数型 ✔ 参数名 类型 参考 可空 数组 备注 鼠标状态 鼠标状态 ✔
.版本 2
.程序集 RX784设备, , 公开
.子程序 取绝对鼠标状态, 整数型, 公开
.参数 鼠标状态, 鼠标状态, 参考
py
class Device:
def get_abs_mouse_state(self) -> Tuple[Status, Optional[MouseState]]: ...
class Device:
def get_abs_mouse_state(self) -> Tuple[Status, Optional[MouseState]]: ...
返回值
名称 | 英文 | 说明 |
---|---|---|
状态码 | status | 成功返回 。 |
鼠标状态 | mouse state | 设备内部记录的鼠标状态,包括 3 个鼠标按键、光标位置和滚轮值。 |
类型
cpp
struct RX784::MouseState {
struct Buttons {
uint8_t left : 1;
uint8_t right : 1;
uint8_t middle : 1;
};
struct Axes {
int16_t x;
int16_t y;
int16_t w;
};
Buttons buttons;
Axes axes;
};
struct RX784::MouseState {
struct Buttons {
uint8_t left : 1;
uint8_t right : 1;
uint8_t middle : 1;
};
struct Axes {
int16_t x;
int16_t y;
int16_t w;
};
Buttons buttons;
Axes axes;
};
e
数据类型名 公开 备注 鼠标状态 ✔ 成员名 类型 传址 数组 备注 按键 鼠标状态_按键 轴 鼠标状态_轴
数据类型名 公开 备注 鼠标状态_按键 ✔ 成员名 类型 传址 数组 备注 左键 逻辑型 右键 逻辑型 中键 逻辑型
数据类型名 公开 备注 鼠标状态_轴 ✔ 成员名 类型 传址 数组 备注 x 短整数型 y 短整数型 w 短整数型
.版本 2
.数据类型 鼠标状态, 公开
.成员 按键, 鼠标状态_按键
.成员 轴, 鼠标状态_轴
.数据类型 鼠标状态_按键, 公开
.成员 左键, 逻辑型
.成员 右键, 逻辑型
.成员 中键, 逻辑型
.数据类型 鼠标状态_轴, 公开
.成员 x, 短整数型
.成员 y, 短整数型
.成员 w, 短整数型
py
@dataclass
class MouseState:
@dataclass
class Buttons:
left: bool
right: bool
middle: bool
@dataclass
class Axes:
x: int
y: int
w: int
buttons: Buttons
axes: Axes
@dataclass
class MouseState:
@dataclass
class Buttons:
left: bool
right: bool
middle: bool
@dataclass
class Axes:
x: int
y: int
w: int
buttons: Buttons
axes: Axes
示例
cpp
#include <cstdio>
#include "rx784.hpp"
int main() {
RX784::Device device;
RX784::Status status;
RX784::MouseState mouseState;
device.open("COM1");
device.initAbsSystem(1920, 1080);
status = device.getAbsMouseState(mouseState);
if (status == RX784::Status::kSuccess) {
printf("左键: %s\n"
"右键: %s\n"
"中键: %s\n"
"水平: %hd\n"
"竖直: %hd\n"
"滚轮: %hd\n",
mouseState.buttons.left ? "true" : "false",
mouseState.buttons.right ? "true" : "false",
mouseState.buttons.middle ? "true" : "false",
mouseState.axes.x,
mouseState.axes.y,
mouseState.axes.w);
} else {
printf(RX784::statusToString(status).c_str());
}
device.close();
}
#include <cstdio>
#include "rx784.hpp"
int main() {
RX784::Device device;
RX784::Status status;
RX784::MouseState mouseState;
device.open("COM1");
device.initAbsSystem(1920, 1080);
status = device.getAbsMouseState(mouseState);
if (status == RX784::Status::kSuccess) {
printf("左键: %s\n"
"右键: %s\n"
"中键: %s\n"
"水平: %hd\n"
"竖直: %hd\n"
"滚轮: %hd\n",
mouseState.buttons.left ? "true" : "false",
mouseState.buttons.right ? "true" : "false",
mouseState.buttons.middle ? "true" : "false",
mouseState.axes.x,
mouseState.axes.y,
mouseState.axes.w);
} else {
printf(RX784::statusToString(status).c_str());
}
device.close();
}
e
方法名 返回值类型 公开 备注 _启动子程序 整数型
变量名 类型 静态 数组 备注 设备 RX784设备 状态码 整数型 鼠标状态 鼠标状态
设备.打开 (“COM1”)设备.初始化绝对坐标系统 (1920, 1080)状态码 = 设备.取绝对鼠标状态 (鼠标状态) 如果 (状态码 = #RX784状态码_成功) 调试输出 (“左键”, 鼠标状态.按键.左键) 调试输出 (“右键”, 鼠标状态.按键.右键) 调试输出 (“中键”, 鼠标状态.按键.中键) 调试输出 (“水平”, 鼠标状态.轴.x) 调试输出 (“竖直”, 鼠标状态.轴.y) 调试输出 (“滚轮”, 鼠标状态.轴.w) 否则 调试输出 (RX784状态码到文本 (状态码)) 如果结束设备.关闭 ()返回 (0).版本 2
.子程序 _启动子程序, 整数型
.局部变量 设备, RX784设备
.局部变量 状态码, 整数型
.局部变量 鼠标状态, 鼠标状态
设备.打开 (“COM1”)
设备.初始化绝对坐标系统 (1920, 1080)
状态码 = 设备.取绝对鼠标状态 (鼠标状态)
.如果 (状态码 = #RX784状态码_成功)
调试输出 (“左键”, 鼠标状态.按键.左键)
调试输出 (“右键”, 鼠标状态.按键.右键)
调试输出 (“中键”, 鼠标状态.按键.中键)
调试输出 (“水平”, 鼠标状态.轴.x)
调试输出 (“竖直”, 鼠标状态.轴.y)
调试输出 (“滚轮”, 鼠标状态.轴.w)
.否则
调试输出 (RX784状态码到文本 (状态码))
.如果结束
设备.关闭 ()
返回 (0)
py
import rx784
device = rx784.Device()
device.open('COM1')
device.init_abs_system(1920, 1080)
status, mouse_state = device.get_abs_mouse_state()
if status == rx784.Status.SUCCESS:
print('左键:', mouse_state.buttons.left)
print('右键:', mouse_state.buttons.right)
print('中键:', mouse_state.buttons.middle)
print('水平:', mouse_state.axes.x)
print('竖直:', mouse_state.axes.y)
print('滚轮:', mouse_state.axes.w)
else:
print(status)
device.close()
import rx784
device = rx784.Device()
device.open('COM1')
device.init_abs_system(1920, 1080)
status, mouse_state = device.get_abs_mouse_state()
if status == rx784.Status.SUCCESS:
print('左键:', mouse_state.buttons.left)
print('右键:', mouse_state.buttons.right)
print('中键:', mouse_state.buttons.middle)
print('水平:', mouse_state.axes.x)
print('竖直:', mouse_state.axes.y)
print('滚轮:', mouse_state.axes.w)
else:
print(status)
device.close()