// WindowProc -- Dispatches and routes window messages LRESULT cef_main_window::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: if (HandleCreate()) return 0L; break; case WM_ERASEBKGND: if (HandleEraseBackground()) return 1L; break; case WM_SETFOCUS: if (HandleSetFocus((HWND)wParam)) return 0L; break; case WM_PAINT: if (HandlePaint()) return 0L; break; case WM_GETMINMAXINFO: if (HandleGetMinMaxInfo((LPMINMAXINFO) lParam)) return 0L; break; case WM_DESTROY: if (HandleDestroy()) return 0L; break; case WM_CLOSE: if (HandleClose()) return 0L; break; case WM_SIZE: if (HandleSize(wParam == SIZE_MINIMIZED)) return 0L; break; case WM_COMMAND: if (HandleCommand(LOWORD(wParam))) return 0L; break; case WM_COPYDATA: if (HandleCopyData((HWND)wParam, (PCOPYDATASTRUCT)lParam)) return 0L; break; } LRESULT lr = cef_host_window::WindowProc(message, wParam, lParam); return lr; }
WXLRESULT wxMDIChildFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) { WXLRESULT rc = 0; bool processed = false; switch ( message ) { case WM_GETMINMAXINFO: processed = HandleGetMinMaxInfo((MINMAXINFO *)lParam); break; case WM_MDIACTIVATE: { WXWORD act; WXHWND hwndAct, hwndDeact; UnpackMDIActivate(wParam, lParam, &act, &hwndAct, &hwndDeact); processed = HandleMDIActivate(act, hwndAct, hwndDeact); } // fall through case WM_MOVE: // must pass WM_MOVE to DefMDIChildProc() to recalculate MDI client // scrollbars if necessary // fall through case WM_SIZE: // must pass WM_SIZE to DefMDIChildProc(), otherwise many weird // things happen MSWDefWindowProc(message, wParam, lParam); break; case WM_WINDOWPOSCHANGING: processed = HandleWindowPosChanging((LPWINDOWPOS)lParam); break; } if ( !processed ) rc = wxFrame::MSWWindowProc(message, wParam, lParam); return rc; }
WXLRESULT wxMDIChildFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) { WXLRESULT rc = 0; bool processed = false; switch ( message ) { case WM_COMMAND: { WORD id, cmd; WXHWND hwnd; UnpackCommand((WXWPARAM)wParam, (WXLPARAM)lParam, &id, &hwnd, &cmd); processed = HandleCommand(id, cmd, (WXHWND)hwnd); } break; case WM_GETMINMAXINFO: processed = HandleGetMinMaxInfo((MINMAXINFO *)lParam); break; case WM_MDIACTIVATE: { WXWORD act; WXHWND hwndAct, hwndDeact; UnpackMDIActivate(wParam, lParam, &act, &hwndAct, &hwndDeact); processed = HandleMDIActivate(act, hwndAct, hwndDeact); } // fall through case WM_MOVE: // must pass WM_MOVE to DefMDIChildProc() to recalculate MDI client // scrollbars if necessary // fall through case WM_SIZE: // must pass WM_SIZE to DefMDIChildProc(), otherwise many weird // things happen MSWDefWindowProc(message, wParam, lParam); break; case WM_SYSCOMMAND: // DefMDIChildProc handles SC_{NEXT/PREV}WINDOW here, so pass it // the message (the base class version does not) return MSWDefWindowProc(message, wParam, lParam); case WM_WINDOWPOSCHANGING: processed = HandleWindowPosChanging((LPWINDOWPOS)lParam); break; } if ( !processed ) rc = wxFrame::MSWWindowProc(message, wParam, lParam); return rc; }
// WindowProc handles dispatching of messages and routing back to the base class or to Windows LRESULT cef_dark_aero_window::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { bool callDefWindowProc = true; switch (message) { case WM_MEASUREITEM: if (HandleMeasureItem((LPMEASUREITEMSTRUCT)lParam)) return 0L; break; case WM_DRAWITEM: if (HandleDrawItem((LPDRAWITEMSTRUCT)lParam)) return 0L; break; case WM_SETICON: mWindowIcon = 0; { RECT rectIcon; ComputeWindowIconRect(rectIcon); InvalidateRect(&rectIcon); } break; } // First let the DesktopWindowManager handle the message and tell us if // we should pass the message to the default window proc LRESULT lr = DwpCustomFrameProc(message, wParam, lParam, &callDefWindowProc); switch(message) { case WM_SETTINGCHANGE: HandleSettingChange((UINT)wParam, (LPCWSTR)lParam); break; case WM_NCACTIVATE: case WM_ACTIVATE: if (mReady) { UpdateNonClientArea(); } break; case WM_NCMOUSELEAVE: // NOTE: We want anyone else interested in this message // to be notified. Otherwise the default implementation // may be in the wrong state HandleNcMouseLeave(); break; case WM_NCMOUSEMOVE: { POINT pt; POINTSTOPOINT(pt, lParam); if (HandleNcMouseMove((UINT)wParam, &pt)) return 0L; } break; case WM_NCLBUTTONDOWN: { POINT pt; POINTSTOPOINT(pt, lParam); if (HandleNcLeftButtonDown((UINT)wParam, &pt)) return 0L; } break; case WM_NCLBUTTONUP: { POINT pt; POINTSTOPOINT(pt, lParam); if (HandleNcLeftButtonUp((UINT)wParam, &pt)) return 0L; } break; } // call DefWindowProc? if (!callDefWindowProc) { return lr; } lr = cef_window::WindowProc(message, wParam, lParam); if (!mReady) return lr; switch (message) { case WM_GETMINMAXINFO: HandleGetMinMaxInfo((LPMINMAXINFO) lParam); break; case WM_SETTEXT: case WM_WINDOWPOSCHANGING: case WM_WINDOWPOSCHANGED: case WM_MOVE: case WM_SIZE: case WM_SIZING: case WM_EXITSIZEMOVE: UpdateNonClientArea(); if (message == WM_WINDOWPOSCHANGED) { RECT rect; ComputeMenuBarRect(rect); InvalidateRect(&rect, TRUE); } break; case WM_EXITMENULOOP: mMenuActiveIndex = -1; break; case WM_ACTIVATEAPP: mIsActive = (BOOL)wParam; UpdateNonClientArea(); break; } return lr; }