Events | Home |
void __stdcall EventProc ( HANDLE hEvent ); |
Function | Event |
---|---|
lcEventSetProc | Defines an application-defined event procedure for specific event |
lcEventReturnCode | Defines return code of event procedure |
lcEventsEnable | Enables or disables events generation |
Event type | Meaning |
---|---|
Mouse and keyboard |
|
LC_EVENT_MOUSEMOVE | Window cursor position has been changed |
LC_EVENT_LBDOWN | Left mouse button has been pressed |
LC_EVENT_LBUP | Left mouse button has been released |
LC_EVENT_LBDBLCLK | Left mouse button double click |
LC_EVENT_RBDOWN | Right mouse button has been pressed |
LC_EVENT_RBUP | Right mouse button has been released |
LC_EVENT_SNAP | Allows a mouse to stick to specific points |
LC_EVENT_KEYDOWN | Keyboard key has been pressed |
View |
|
LC_EVENT_PAINT | LiteCAD window is being redrawn |
LC_EVENT_WNDVIEW | View position has been changed in LiteCAD window |
LC_EVENT_FILETAB | User selects File Tab (to change active drawing in a window) |
LC_EVENT_VIEWBLOCK | Window has changed active block |
Entity |
|
LC_EVENT_ADDENTITY | Graphic entity has been added |
LC_EVENT_ENTPROP | Entity's property value has been changed |
LC_EVENT_ENTMOVE | Entity has been moved |
LC_EVENT_ENTSCALE | Entity has been scaled |
LC_EVENT_ENTROTATE | Entity has been rotated |
LC_EVENT_ENTMIRROR | Entity has been mirrored |
LC_EVENT_ENTERASE | Entity flag "Deleted" was changed |
LC_EVENT_GRIPMOVE | User has moved entity's grip |
LC_EVENT_GRIPDRAG | User is dragging entity's grip |
LC_EVENT_PICKENT | User clicks on entity |
LC_EVENT_SELECT | Selection set has been changed |
LC_EVENT_DRAWIMAGE | Draw custom images |
Drawing |
|
LC_EVENT_DRWPROP | Drawing's property value has been changed |
LC_EVENT_FILE | Drawing has been loaded from a file or saved to a file |
LC_EVENT_EXTENTS | Drawing's extents has been changed |
Custom command |
|
LC_EVENT_ADDCMD | LiteCAD initializes commands. Use this event to add custom commands. |
LC_EVENT_CCMD | Custom command interface |
LC_EVENT_WAITPOINT | Generated on mouse move while the function lcWndWaitPoint is running |
Other |
|
LC_EVENT_ADDSTR | LiteCAD initializes GUI strings |
LC_EVENT_HELP | User clicks on "Help" button in LiteCAD dialog |
LC_EVENT_MAGNIFIER | Magnifier property has been changed |
LC_EVENT_NAVIGATOR | Navigator (aerial view) property has been changed |
LC_EVENT_GRID | Coordinate grid property has been changed |
LC_EVENT_OSNAP | Object snap property has been changed |
LC_EVENT_PTRACK | Polar tracking property has been changed |
LC_EVENT_ORTHO | "Ortho mode" property has been changed |
Property | Type | Access | Meaning |
---|---|---|---|
LC_PROP_EVENT_TYPE | int | R | Event type (LC_EVENT_MOUSEMOVE and other) |
LC_PROP_EVENT_APPPRM1 | int | R | Application-defined parameter 1 |
LC_PROP_EVENT_APPPRM2 | handle | R | Application-defined parameter 2 |
LC_PROP_EVENT_WND | handle | R | LiteCAD design window |
LC_PROP_EVENT_DRW | handle | R | Drawing |
LC_PROP_EVENT_BLOCK | handle | R | Block |
LC_PROP_EVENT_ENTITY | handle | R | Entity |
LC_PROP_EVENT_HDC | handle | R | Device context |
LC_PROP_EVENT_HCMD | handle | R | Object defined in a custom command |
LC_PROP_EVENT_INT1 LC_PROP_EVENT_INT2 LC_PROP_EVENT_INT3 LC_PROP_EVENT_INT4 LC_PROP_EVENT_INT5 |
int | RW | Integer value. The meaning depends on event type. |
LC_PROP_EVENT_FLOAT1 LC_PROP_EVENT_FLOAT2 LC_PROP_EVENT_FLOAT3 LC_PROP_EVENT_FLOAT4 LC_PROP_EVENT_FLOAT5 LC_PROP_EVENT_FLOAT6 |
float | RW | Float value. The meaning depends on event type. |
LC_PROP_EVENT_STR1 LC_PROP_EVENT_STR2 LC_PROP_EVENT_STR3 |
string | RW | string value. The meaning depends on event type. |
// LiteCAD event procedure //----------------------------------------------- void CALLBACK EventProc (HANDLE hEvent) { int EventType; LcApplication* pApp = (LcApplication*)lcPropGetHandle( hEvent, LC_PROP_EVENT_APPPRM2 ); if (pApp){ EventType = lcPropGetInt( hEvent, LC_PROP_EVENT_TYPE ); switch( EventType ){ case LC_EVENT_MOUSEMOVE: pApp->OnMouseMove( hEvent ); break; case LC_EVENT_KEYDOWN: pApp->OnKeyDown( hEvent ); break; ... } } } //----------------------------------------------- bool LcApplication::Init (HINSTANCE hInst, LPCWSTR szAppDir) { BOOL bInit; ... lcEventSetProc( LC_EVENT_MOUSEMOVE, EventProc, 0, (HANDLE)this ); lcEventSetProc( LC_EVENT_KEYDOWN, EventProc, 0, (HANDLE)this ); ... bInit = lcInitialize(); ... } //----------------------------------------------- void LcApplication::OnMouseMove (HANDLE hEvent) { WCHAR szBuf[256], szNum[16]; double X, Y; HANDLE hLcWnd = lcPropGetHandle( hEvent, LC_PROP_EVENT_WND ); X = lcPropGetFloat( hLcWnd, LC_PROP_WND_CURX ); Y = lcPropGetFloat( hLcWnd, LC_PROP_WND_CURY ); // X okDblToStr( X, szNum ); swprintf( szBuf, L"X: %s", szNum ); lcStatbarText( m_hStatBar, 1, szBuf ); // Y okDblToStr( Y, szNum ); swprintf( szBuf, L"Y: %s", szNum ); lcStatbarText( m_hStatBar, 2, szBuf ); lcStatbarRedraw( m_hStatBar ); } //----------------------------------------------- void LcApplication::OnKeyDown (HANDLE hEvent) { UINT VirtKey, Flags; BOOL bShift, bCtrl; double X, Y; HANDLE hLcWnd, hLcDrw, hBlock; VirtKey = lcPropGetInt( hEvent, LC_PROP_EVENT_INT1 ); Flags = lcPropGetInt( hEvent, LC_PROP_EVENT_INT2 ); bShift = lcPropGetInt( hEvent, LC_PROP_EVENT_INT3 ); bCtrl = lcPropGetInt( hEvent, LC_PROP_EVENT_INT4 ); X = lcPropGetFloat( hEvent, LC_PROP_EVENT_FLOAT1 ); Y = lcPropGetFloat( hEvent, LC_PROP_EVENT_FLOAT2 ); hLcWnd = lcPropGetHandle( hEvent, LC_PROP_EVENT_WND ); hLcDrw = lcPropGetHandle( hEvent, LC_PROP_EVENT_DRW ); hBlock = lcPropGetHandle( hEvent, LC_PROP_EVENT_BLOCK ); if (OnKeyDown( VirtKey, Flags )){ lcEventReturnCode( 1 ); } ... }