LRESULT WebView::wndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { LRESULT lResult = 0; bool handled = true; switch (message) { case WM_DESTROY: m_isBeingDestroyed = true; close(); break; case WM_ERASEBKGND: lResult = 1; break; case WM_PAINT: lResult = onPaintEvent(hWnd, message, wParam, lParam, handled); break; case WM_PRINTCLIENT: lResult = onPrintClientEvent(hWnd, message, wParam, lParam, handled); break; case WM_MOUSEMOVE: case WM_LBUTTONDOWN: case WM_MBUTTONDOWN: case WM_RBUTTONDOWN: case WM_LBUTTONDBLCLK: case WM_MBUTTONDBLCLK: case WM_RBUTTONDBLCLK: case WM_LBUTTONUP: case WM_MBUTTONUP: case WM_RBUTTONUP: case WM_MOUSELEAVE: lResult = onMouseEvent(hWnd, message, wParam, lParam, handled); break; case WM_MOUSEWHEEL: case WM_VISTA_MOUSEHWHEEL: lResult = onWheelEvent(hWnd, message, wParam, lParam, handled); break; case WM_SYSKEYDOWN: case WM_KEYDOWN: case WM_SYSCHAR: case WM_CHAR: case WM_SYSKEYUP: case WM_KEYUP: lResult = onKeyEvent(hWnd, message, wParam, lParam, handled); break; case WM_SIZE: lResult = onSizeEvent(hWnd, message, wParam, lParam, handled); break; case WM_WINDOWPOSCHANGED: lResult = onWindowPositionChangedEvent(hWnd, message, wParam, lParam, handled); break; case WM_SETFOCUS: lResult = onSetFocusEvent(hWnd, message, wParam, lParam, handled); break; case WM_KILLFOCUS: lResult = onKillFocusEvent(hWnd, message, wParam, lParam, handled); break; case WM_TIMER: lResult = onTimerEvent(hWnd, message, wParam, lParam, handled); break; case WM_SHOWWINDOW: lResult = onShowWindowEvent(hWnd, message, wParam, lParam, handled); break; case WM_SETCURSOR: lResult = onSetCursor(hWnd, message, wParam, lParam, handled); break; default: handled = false; break; } if (!handled) lResult = ::DefWindowProc(hWnd, message, wParam, lParam); return lResult; }
LRESULT Window::msgproc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_ACTIVATE: { boolean newActive = LOWORD( wParam ) == WA_ACTIVE; if( active != newActive ) { onActive( newActive ); active = newActive; } } break; case WM_ERASEBKGND: { } break; case WM_PAINT: { onPaint(); } break; case WM_ENTERSIZEMOVE: { updateFlag = false; onEnterSizeMove(); } break; case WM_SIZE: { boolean newActive = ( wParam != SIZE_MAXHIDE ) && ( wParam != SIZE_MINIMIZED ); if( active != newActive ) { onActive( newActive ); active = newActive; } onSize(); } break; case WM_EXITSIZEMOVE: { onExitSizeMove(); updateFlag = true; } break; case WM_SETCURSOR: { onSetCursor(); } break; case WM_CHAR: { onChar( static_cast<wchar>( wParam ) ); } break; case WM_INPUT: { onRawInput( reinterpret_cast<HRAWINPUT>( lParam ) ); } break; case WM_CLOSE: { onClose(); } break; case WM_DESTROY: { onDestroy(); } break; default: { } } return DefWindowProcA( hWnd, msg, wParam, lParam ); }