WMSG_RESULT CUITree::KeyMessageProc( MSG* pMsg ) { WMSG_RESULT ret = WMSG_FAIL; if (m_bHide == FALSE) { ret = OnKeyMessage(pMsg); } if (ret == WMSG_FAIL) ret = KeyMessageChild(pMsg); return ret; }
WMSG_RESULT CUIBase::KeyMessageProc(MSG* pMsg) { if (m_bHide) return WMSG_FAIL; WMSG_RESULT ret = WMSG_FAIL; ret = OnKeyMessage(pMsg); if (ret == WMSG_FAIL) ret = KeyMessageChild(pMsg); return ret; }
LRESULT CSiWindow::WindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam) { LRESULT lr; TRACE(_T("Current Thread Id = %x, uMsg = %x\n"), ::GetCurrentThreadId(), uMsg); switch(uMsg) { case WM_GETTEXT: { lr = CSubclassWnd::WindowProc(uMsg, wParam, lParam); OnGetWindowText(wParam,lParam); return lr; } case 0x7e9: { UINT nChar = static_cast<UINT>(wParam); UINT nFlags = static_cast<UINT>(lParam); if((nChar == 0x08) || (nChar == 0x09) || (nChar == 0x0D) || (nChar == 0x802e) || (nChar == 0x308) || (nChar == 0x309) || (nChar == 0x30D)) { lr = CSubclassWnd::WindowProc(uMsg, wParam, lParam); OnKeyMessage(nChar, nFlags); } else { OnKeyMessage(nChar, nFlags); lr = CSubclassWnd::WindowProc(uMsg, wParam, lParam); } return lr; } case WM_TIMER: { UINT_PTR timerId = static_cast<UINT_PTR>(wParam); OnTimer(timerId); break;//让默认的处理函数继续处理 } case WM_DESTROY: { OnDestroy(); break;//让默认的处理函数继续处理 } case WM_MDIACTIVATE: { OnMDIActive(wParam,lParam); break;//让默认的处理函数继续处理 } #ifdef INSTALL_SI_MENU_THEME case WM_UNINITMENUPOPUP://WM_EXITMENULOOP: { m_ActiveMenus.OnUninitMenuPopup(wParam, lParam); break; } case WM_INITMENUPOPUP/*WM_INITMENU*/: { m_ActiveMenus.OnInitMenuPopup(wParam, lParam); break; } case WM_MEASUREITEM: { int nRtn = m_ActiveMenus.OnMeasureItem(wParam, lParam); if(nRtn == 1) return 1; else return CSubclassWnd::WindowProc(uMsg, wParam, lParam); } case WM_DRAWITEM: { int nRtn = m_ActiveMenus.OnDrawItem(wParam, lParam); if(nRtn == 1) return 1; else return CSubclassWnd::WindowProc(uMsg, wParam, lParam); } #endif default: break; } return CSubclassWnd::WindowProc(uMsg, wParam, lParam); }