QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2800|回复: 0

eGUI事件

[复制链接]
发表于 2006-11-28 16:11:50 | 显示全部楼层 |阅读模式
3        Event
eGUI的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              窗口叠加
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 04:35 , Processed in 0.036293 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表