Event (消息数据来自屏幕事件)
 
来自fbgfx.bi的预定义结构(UDT)由ScreenEvent用于返回事件数据

语法

#include once "fbgfx.bi"
using fb
Dim variable As Event

说明

在这里,为了清楚起见,我们报告EVENT结构

Type EVENT Field = 1
    Type As Integer
    Union
        Type
            scancode As Integer
            ascii As Integer
        End Type
        Type
            x As Integer
            y As Integer
            dx As Integer
            dy As Integer
        End Type
        button As Integer
        z As Integer
        w As Integer
    End Union
End Type


Type字段将包含事件类型ID,而其余4个整数将保存事件类型的敏感数据。

事件类型
事件类型由返回到event 缓冲区(EVENT结构中的.type字段)的第一个整数的ID号标识。已知事件类型ID及其写入时的值为:
    • EVENT_KEY_PRESS1)键盘上按下一个键。.scancode字段包含键的独立于平台的扫描代码值;如果密钥具有ascii表示形式,则它保存在.ascii字段中,否则其值为0。
    • EVENT_KEY_RELEASE2)键盘上发布了一个键。.scancode.ascii字段与EVENT_KEY_PRESS事件的含义相同。
    • EVENT_KEY_REPEAT3)一个关键是被拒绝。.scancode.ascii字段与EVENT_KEY_PRESS事件的含义相同。
    • EVENT_MOUSE_MOVE4)鼠标在程序窗口上移动。.x.y字段包含相对于屏幕左上角的新鼠标位置,而.dx.dy字段包含运动增量。
    • EVENT_MOUSE_BUTTON_PRESS5)其中一个鼠标按钮被按下。.button字段有一位标识按下的按钮;位0标识鼠标左键,第1位为鼠标右键,第2位为鼠标中键。
    • EVENT_MOUSE_BUTTON_RELEASE6)其中一个鼠标按钮已被释放。.button字段与EVENT_MOUSE_BUTTON_PRESS事件的含义相同。
    • EVENT_MOUSE_DOUBLE_CLICK7)双击了其中一个鼠标按钮。.button字段与EVENT_MOUSE_BUTTON_PRESS事件的含义相同。
    • EVENT_MOUSE_WHEEL8)使用鼠标滚轮;新的车轮位置返回到.z字段。
    • EVENT_MOUSE_ENTER9)将鼠标移动到程序窗口中。
    • EVENT_MOUSE_EXIT10)将鼠标移出程序窗口。
    • EVENT_WINDOW_GOT_FOCUS11)程序窗口有焦点。
    • EVENT_WINDOW_LOST_FOCUS12)程序窗口已失去焦点。
    • EVENT_WINDOW_CLOSE13)用户尝试关闭程序窗口。
    • EVENT_MOUSE_HWHEEL14)使用水平鼠标滚轮;新的水平轮位置返回到.w字段。

fbgfx.bi头文件包含EVENT用户数据类型的定义,因此无需手动进行声明。

方言差异

  • lang fb 中,结构和常量存储在FBNamespace中。其他方言并非如此。

与QB差别

  • 新的FreeBASIC

参考