static void OnKeyboardEvent(LCUI_SysEvent e, void *arg) { if (e->type == LCUI_KEYDOWN) { LCUIKeyboard_HitKey(e->key.code); } else if (e->type == LCUI_KEYUP) { LCUIKeyboard_ReleaseKey(e->key.code); } }
static LRESULT CALLBACK Win32_LCUI_WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { PAINTSTRUCT ps; LCUI_Rect area; switch (message) { case WM_KEYDOWN: printf("WM_KEYDOWN: %ld\n",wParam); LCUIKeyboard_HitKey( wParam ); return 0; case WM_KEYUP: printf("WM_KEYUP: %ld\n",wParam); LCUIKeyboard_FreeKey( wParam ); return 0; case WM_RBUTTONDOWN: Win32_LCUIMouse_ButtonDown( LCUIKEY_RIGHTBUTTON ); return 0; case WM_RBUTTONUP: Win32_LCUIMouse_ButtonUp( LCUIKEY_RIGHTBUTTON ); return 0; case WM_LBUTTONDOWN: //_DEBUG_MSG("left button down\n"); Win32_LCUIMouse_ButtonDown( LCUIKEY_LEFTBUTTON ); return 0; case WM_LBUTTONUP: //_DEBUG_MSG("left button up\n"); Win32_LCUIMouse_ButtonUp( LCUIKEY_LEFTBUTTON ); return 0; case WM_PAINT: DEBUG_MSG("WM_PAINT\n"); BeginPaint( hwnd, &ps ); /* 获取区域坐标及尺寸 */ area.x = ps.rcPaint.left; area.y = ps.rcPaint.top; area.width = ps.rcPaint.right - area.x; area.height = ps.rcPaint.bottom - area.y; LCUIScreen_InvalidArea( area ); EndPaint( hwnd, &ps ); return 0; case WM_DESTROY: PostQuitMessage(0); LCUI_Quit(); return 0; default:break; } return DefWindowProc (hwnd, message, wParam, lParam) ; }