eGUI事件
3 EventeGUI的kernel部分和应用部分通过IOCTL系统调用完成通讯。其中一个最重要的部分就是event部分;
event的作用是:
Kernel 给应用传递 键盘鼠标按键消息
Kernel 给应用传递窗口移动消息
Kernel 给应用传递被覆盖消息
Kernel 给应用传递被暴露消息
3.1 Event数据结构
Struct _EGui_Event {
Short x;
Short y;
Int type;
Int code;
Int pid;
Egui_Window * window;
}
X: 光标的x位置
Y: 光标的y 位置
Type: 事件内容见表
Code: 当出现键盘输入时,记录了键盘的编码。
Pid: 事件要传给的window的进程ID号。
Window: 事件对应的窗口指针,主要提供给一个进程的多个窗口使用。
事件类型名称 含义
PRESS_KEY 键盘按键
CLICK_LEFT 单击鼠标左键
CLICK_RIGHT 单击鼠标右键
CLICK_MIDDLE 单击鼠标中键
REL_LEFT 放开鼠标左键
REL_RIGHT 放开鼠标右键
REL_MIDDLE 放开鼠标中键
RELEASE_KEY 键盘按键松开
FOCUS_CHANGED 窗口的焦点改变
WINDOW_MOVE 窗口移动
W_SIZE_CHANGED 窗口的尺寸改变
CURSOR_MOVE 光标移动
HIDE_CURSOR 隐藏光标
REDRAW_RECTANGLE 画一个矩形,用在窗口拖动时。
UPGRADE_WINDOW 窗口提升
WINDOW_PREMOVE 窗口即将移动(实际上是鼠标左键在标题栏处单击)
REMOVE_PREMOVE 窗口并未移动(实际上是鼠标左键在标题栏处单击后,并未移动窗口,而直接松开)
WINDOW_OVER_RECT 窗口叠加
页:
[1]