EVENT (message data from ScreenEvent)
- Source: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgEvent
- Last revised: 2022-06-07
Pre-defined structure (UDT) from fbgfx.bi used by Screenevent to return event data
Syntax
vb
#include once "fbgfx.bi"
using fb
dim variable as EventDescription
Here we report the EVENT structure for clarity:
start GeSHi
vb
Type EVENT Field = 1
Type As Long
Union
Type
scancode As Long
ascii As Long
End Type
Type
x As Long
y As Long
dx As Long
dy As Long
End Type
button As Long
z As Long
w As Long
End Union
End Typeend GeSHi
The Type field will contain the event type ID, while the remaining 4 integers will hold sensitive data to the event type.
Event types
The event type is identified by an ID number returned into the first integer of the event buffer (the .type field in the EVENT structure). Known event type IDs - and their values at time of writing - are:
EVENT_KEY_PRESS(1) A key was pressed on the keyboard. The.scancodefield contains the platform independent scancode value for the key; if the key has an ascii representation, it is held into the.asciifield, which otherwise has a value of 0.EVENT_KEY_RELEASE(2) A key was released on the keyboard. The.scancodeand.asciifields have the same meaning as with theEVENT_KEY_PRESSevent.EVENT_KEY_REPEAT(3) A key is being held down repeatedly. The.scancodeand.asciifields have the same meaning as with theEVENT_KEY_PRESSevent.EVENT_MOUSE_MOVE(4) The mouse was moved while it was on the program window. The.xand.yfields contain the new mouse position relative to the upper-left corner of the screen, while the.dxand.dyfields contain the motion deltas.EVENT_MOUSE_BUTTON_PRESS(5) One of the mouse buttons was pressed. The.buttonfield has one bit set identifying the button that was pressed; bit 0 identifies the left mouse button, bit 1 the right mouse button and bit 2 the middle mouse button.EVENT_MOUSE_BUTTON_RELEASE(6) One of the mouse buttons was released. The.buttonfield has the same meaning as with theEVENT_MOUSE_BUTTON_PRESSevent.EVENT_MOUSE_DOUBLE_CLICK(7) One of the mouse buttons was double clicked. The.buttonfield has the same meaning as with theEVENT_MOUSE_BUTTON_PRESSevent.EVENT_MOUSE_WHEEL(8) The mouse wheel was used; the new wheel position is returned into the.zfield.EVENT_MOUSE_ENTER(9) The mouse was moved into the program window.EVENT_MOUSE_EXIT(10) The mouse was moved out of the program window.EVENT_WINDOW_GOT_FOCUS(11) The program window has got focus.EVENT_WINDOW_LOST_FOCUS(12) The program window has lost focus.EVENT_WINDOW_CLOSE(13) The user attempted to close the program window.EVENT_MOUSE_HWHEEL(14) The horizontal mouse wheel was used; the new horizontal wheel position is returned into the.wfield.
The fbgfx.bi header file contains a definition of the EVENT user data type, so it is not necessary to declare it manually.
Examples
See example at ScreenEvent.
Dialect Differences
- In lang fb, the structure and constants are stored in the
FBNamespace. This is not the case in other dialects.
Differences from QB
- New to FreeBASIC
See also
Back to DocToc