Esempio n. 1
0
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;
}
Esempio n. 2
0
		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 );
		}