//--------------------------------------------------------------------------------------- void z_ed3View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { if(_downKey == nChar) return; _blockKeyCall=1; OnKeyUp(_downKey, nRepCnt, nFlags); _blockKeyCall=0; _downKey = nChar; if(nChar == ('i') || nChar == ('I')) { CPoint pt; GetCursorPos(&pt); ScreenToClient(&pt); _blockMouseCall=1; OnLButtonDown(0, pt) ; _blockMouseCall=0; _downKey = nChar; return ; } else if(nChar == ('p') || nChar == ('P')) { CPoint pt; GetCursorPos(&pt); ScreenToClient(&pt); _blockMouseCall=1; OnRButtonDown(0, pt) ; _blockMouseCall=0; _downKey = nChar; return ; } else if(nChar == ('o') || nChar == ('O')) { CPoint pt; GetCursorPos(&pt); ScreenToClient(&pt); _blockMouseCall=1; OnLButtonDown(0, pt) ; OnRButtonDown(0, pt) ; _blockMouseCall=0; _downKey = nChar; return ; } if(nChar == (VK_SHIFT) || nChar == (VK_CONTROL)) DOC()->Invalidate(); CView::OnKeyDown(nChar, nRepCnt, nFlags); }
void CObjectView::OnRButtonDblClk(UINT nFlags, CPoint point) { if (mode == ZOOM) OnRButtonDown(nFlags, point); // nicer action else CView::OnRButtonDblClk(nFlags, point); }
//-------------------------------------------------------------------------------------------- bool MouseHandlerBase::OnMsgProc( HWND i_hWnd, UINT i_nMsg, WPARAM i_wParam, LPARAM i_lParam ) { bool ret = false; // マウスに関係するメッセージをハンドリングする switch( i_nMsg ) { case WM_MOUSEMOVE: ret = OnMouseMove(LOWORD(i_lParam), HIWORD(i_lParam)); break; case WM_LBUTTONDOWN: ret = OnLButtonDown(LOWORD(i_lParam), HIWORD(i_lParam)); break; case WM_LBUTTONUP: ret = OnLButtonUp(LOWORD(i_lParam), HIWORD(i_lParam)); break; case WM_RBUTTONDOWN: ret = OnRButtonDown(LOWORD(i_lParam), HIWORD(i_lParam)); break; case WM_RBUTTONUP: ret = OnRButtonUp(LOWORD(i_lParam), HIWORD(i_lParam)); break; case WM_MOUSEWHEEL: ret = OnMouseWheel( GET_WHEEL_DELTA_WPARAM(i_wParam) / WHEEL_DELTA ); break; } return ret; }
//Input handler void Game::Input(SDL_Event* Event) { switch(Event->type) { case SDL_KEYDOWN: { OnKeyDown(Event->key.keysym.sym, (SDL_Keymod) Event->key.keysym.mod); break; } case SDL_KEYUP: { break; } case SDL_MOUSEMOTION: { OnMouseMove(Event->motion.x,Event->motion.y,Event->motion.xrel,Event->motion.yrel,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_LEFT))!=0,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_RIGHT))!=0,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_MIDDLE))!=0); break; } case SDL_MOUSEBUTTONDOWN: { switch(Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonDown(Event->button.x,Event->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonDown(Event->button.x,Event->button.y); break; } case SDL_BUTTON_MIDDLE: { break; } } break; } case SDL_MOUSEBUTTONUP: { switch(Event->button.button) { case SDL_BUTTON_LEFT: { break; } case SDL_BUTTON_RIGHT: { break; } case SDL_BUTTON_MIDDLE: { break; } } break; } case SDL_QUIT: { OnExit(); break; } } }
LRESULT SystemFrame::onContextMenu(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/) { POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; // location of mouse click if(pt.x == -1 && pt.y == -1) { CRect erc; ctrlPad.GetRect(&erc); pt.x = erc.Width() / 2; pt.y = erc.Height() / 2; ClientToScreen(&pt); } POINT ptCl = pt; ScreenToClient(&ptCl); OnRButtonDown(ptCl); OMenu menu; menu.CreatePopupMenu(); menu.AppendMenu(MF_STRING, ID_EDIT_COPY, CTSTRING(COPY)); menu.AppendMenu(MF_SEPARATOR); if(SETTING(LOG_SYSTEM)) { menu.AppendMenu(MF_STRING, IDC_OPEN_SYSTEM_LOG, CTSTRING(OPEN_SYSTEM_LOG)); menu.AppendMenu(MF_SEPARATOR); } menu.AppendMenu(MF_STRING, ID_EDIT_SELECT_ALL, CTSTRING(SELECT_ALL)); menu.AppendMenu(MF_STRING, ID_EDIT_CLEAR_ALL, CTSTRING(CLEAR_MESSAGES)); if (!selWord.empty()) { menu.AppendMenu(MF_STRING, IDC_COPY_DIR, CTSTRING(COPY_DIRECTORY)); menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_STRING, IDC_SEARCHDIR, CTSTRING(SEARCH_DIRECTORY)); menu.AppendMenu(MF_STRING, IDC_ADD_AUTO_SEARCH_DIR, CTSTRING(ADD_AUTO_SEARCH_DIR)); if (selWord[selWord.length() - 1] != PATH_SEPARATOR) { menu.AppendMenu(MF_STRING, IDC_SEARCH, CTSTRING(SEARCH_FILENAME)); auto path = Text::fromT(selWord); if (Util::fileExists(path)) { menu.AppendMenu(MF_STRING, IDC_DELETE_FILE, CTSTRING(DELETE_FILE)); } else { menu.AppendMenu(MF_STRING, IDC_ADD_AUTO_SEARCH_FILE, CTSTRING(ADD_AUTO_SEARCH_FILE)); menu.AppendMenu(MF_SEPARATOR); } } menu.AppendMenu(MF_STRING, IDC_OPEN_FOLDER, CTSTRING(OPEN_FOLDER)); } menu.open(m_hWnd, TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt); return 0; }
WMSG_RESULT CUITree::RButtonDown( UINT16 x, UINT16 y ) { WMSG_RESULT ret = WMSG_FAIL; if (m_bHide == FALSE) { ret = OnRButtonDown(x, y); } if (ret == WMSG_FAIL) ret = RButtonDownChild(x, y); return ret; }
LRESULT CLogicView::Reaction(UINT message, WPARAM wParam, LPARAM lParam){ switch(message){ case WM_RBUTTONDOWN: { return OnRButtonDown(wParam,lParam); } case WM_COMMAND: { return OnCommand(wParam,lParam); } default: return CWSTreeView::Reaction(message,wParam,lParam); } }
LRESULT CMainWindow::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) { if (uMsg == WM_MOUSEMOVE) OnMouseMove(uMsg, wParam, lParam); if (uMsg == WM_RBUTTONDOWN) { LRESULT lRes = __super::HandleMessage(uMsg, wParam, lParam); OnRButtonDown(uMsg, wParam, lParam); return lRes; } if (uMsg == WM_LBUTTONDBLCLK) OnLButtonDblClk(uMsg, wParam, lParam); if ((m_pSendEdit != NULL) && m_pSendEdit->IsFocused() && (uMsg == WM_KEYDOWN) && (wParam == 'V') && (lParam & VK_CONTROL)) // 发送消息框的Ctrl+V消息 { m_pSendEdit->PasteSpecial(CF_TEXT); return TRUE; } if (uMsg == WM_NOTIFY && EN_PASTE == ((LPNMHDR)lParam)->code) { ITextServices * pTextServices = m_pSendEdit->GetTextServices(); if ((UINT)pTextServices == ((LPNMHDR)lParam)->idFrom) { AddMsgToSendEdit(((NMRICHEDITOLECALLBACK *)lParam)->lpszText); } if (pTextServices != NULL) pTextServices->Release(); } if (uMsg == WM_MENU) { CControlUI * pControl = (CControlUI *)lParam; if (pControl != NULL) this->paint_manager_.SendNotify(pControl, _T("menu_msg"), wParam, lParam); } if (uMsg == FACE_CTRL_SEL) return OnFaceCtrlSel(uMsg, wParam, lParam); if (uMsg == WM_DROPFILES) return onDropFiles(uMsg, wParam, lParam); return __super::HandleMessage(uMsg, wParam, lParam); }
WMSG_RESULT CUIBase::RButtonDown(UINT16 x, UINT16 y) { if (m_bHide) return WMSG_FAIL; if (IsInside(x, y) == FALSE) return WMSG_FAIL; WMSG_RESULT ret = WMSG_FAIL; ret = OnRButtonDown(x, y); if (ret == WMSG_FAIL) ret = RButtonDownChild(x, y); return ret; }
void SDLWrapper::HandleMouseButtonDownEvents( SDL_Event* event ) { switch( event->button.button ) { case SDL_BUTTON_LEFT: OnLButtonDown( event->button.x, event->button.y ); break; case SDL_BUTTON_RIGHT: OnRButtonDown( event->button.x, event->button.y ); break; case SDL_BUTTON_MIDDLE: OnMButtonDown( event->button.x, event->button.y ); break; } }
int View3D::OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_MOUSEMOVE: OnMouseMove(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); return 0; case WM_LBUTTONUP: OnLButtonUp(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); return 0; case WM_LBUTTONDOWN: OnLButtonDown(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); return 0; case WM_RBUTTONUP: OnRButtonUp(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); return 0; case WM_RBUTTONDOWN: OnRButtonDown(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); return 0; // case WM_MOUSEWHEEL: // OnMouseWheel(GET_WHEEL_DELTA_WPARAM(wParam)); // return 0; case WM_SIZE: OnResize(LOWORD(lParam), HIWORD(lParam)); return 0; // case WM_PAINT: // RenderScene(); // return 0; case WM_DESTROY: Destroy(); return 0; } return (int)DefWindowProc(hWnd, uMsg, wParam, lParam); }
LRESULT CGameProc::DefMainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_RBUTTONDOWN: { OnRButtonDown(wParam,lParam); } break; case WM_RBUTTONUP: { m_bRCapture=false; } break; case WM_LBUTTONDOWN: { // bLCapture=true; // fAngleRotY=0.f; // Oldpt.x = LOWORD(lParam); // Oldpt.y = HIWORD(lParam); OnLButtonDown(wParam,lParam); } break; case WM_LBUTTONUP: { m_pt.x = (float)LOWORD(lParam); m_pt.y = (float)HIWORD(lParam); if (m_xSkillWnd.OnLButtonUp(m_pt)) { } // if (bLCapture) // { // m_pCamera->SetCameraRotationY(-1*fAngleRotY); // } // bLCapture=false; } break; case WM_MOUSEMOVE: { m_pt.x = (float)LOWORD(lParam); m_pt.y = (float)HIWORD(lParam); if (m_xSkillWnd.OnMouseMove(m_pt)) { } else if (g_pChatPopWnd->OnMouseMove(m_pt)) { return 0; } if (m_pt.x<100||m_pt.x>924||m_pt.y<50||m_pt.y>688) { m_bRCapture=false; } if (m_bRCapture) { m_fAnlgeX=(m_pt.y-m_Oldpt.y)*(4*D3DX_PI/5)/m_clientHeight; g_pCamera->SetCameraRotationX(m_fAnlgeX); m_fAnlgeY=(m_pt.x-m_Oldpt.x)*(D3DX_PI)/m_clientWidth; g_pCamera->SetCameraRotationY(m_fAnlgeY); g_pPlayer->SetAngle(m_fAnlgeY); } else if (m_bLCapture) { m_fAnlgeX=(m_pt.y-m_Oldpt.y)*(4*D3DX_PI/5)/m_clientHeight; g_pCamera->SetCameraRotationX(m_fAnlgeX); m_fAnlgeY=(m_pt.x-m_Oldpt.x)*(D3DX_PI)/m_clientWidth; g_pCamera->SetCameraRotationY(m_fAnlgeY); m_fAngleRotY+=m_fAnlgeY; } m_Oldpt=m_pt; } break; case WM_KEYDOWN: { if (g_pPlayer->IsDead()) { return 0; } switch (wParam) { case 'W': { g_pCamera->Walk(2.f); D3DXVECTOR3 vDir,vPos; g_pCamera->GetCameraDir(&vDir); g_pPlayer->Walk(vDir,2.f); g_pPlayer->GetPos(&vPos); g_pPlayer->SetPos(D3DXVECTOR3(vPos.x,m_pTerrain->getHeight(vPos.x,vPos.z),vPos.z)); g_pCamera->SetPos(D3DXVECTOR3(vPos.x,m_pTerrain->getHeight(vPos.x,vPos.z),vPos.z)); } break; case 'S': { g_pCamera->Walk(-2.f); D3DXVECTOR3 vDir,vPos; g_pCamera->GetCameraDir(&vDir); g_pPlayer->Walk(vDir,-2.f); g_pPlayer->GetPos(&vPos); g_pPlayer->SetPos(D3DXVECTOR3(vPos.x,m_pTerrain->getHeight(vPos.x,vPos.z),vPos.z)); g_pCamera->SetPos(D3DXVECTOR3(vPos.x,m_pTerrain->getHeight(vPos.x,vPos.z),vPos.z)); } break; case 'A': { g_pCamera->SetCameraRotationY(-D3DX_PI/24); } break; case 'D': { g_pCamera->SetCameraRotationY(D3DX_PI/24); } break; case 'L': { g_pChatPopWnd->Open(); } break;; case VK_DOWN: { g_pCamera->SetCameraRotationX(D3DX_PI/32); } break; case VK_UP: { g_pCamera->SetCameraRotationX(-D3DX_PI/32); } break; case VK_RETURN: { } break; } g_pPlayer->OnKeyDown(wParam,lParam); m_xSkillWnd.OnKeyDown(wParam,lParam); } break; case WM_KEYUP: g_pPlayer->OnKeyUp(wParam,lParam); break; } return DefWindowProc(hWnd,msg,wParam,lParam); }
LRESULT ChatCtrl::onContextMenu(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/) { POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; // location of mouse click if(pt.x == -1 && pt.y == -1) { CRect erc; GetRect(&erc); pt.x = erc.Width() / 2; pt.y = erc.Height() / 2; ClientToScreen(&pt); } POINT ptCl = pt; ScreenToClient(&ptCl); OnRButtonDown(ptCl); bool boHitURL = HitURL(); if (!boHitURL) selectedURL.clear(); OMenu menu; menu.CreatePopupMenu(); if (copyMenu.m_hMenu != NULL) { // delete copy menu if it exists copyMenu.DestroyMenu(); copyMenu.m_hMenu = NULL; } if(selectedUser.empty()) { if(!selectedIP.empty()) { menu.InsertSeparatorFirst(selectedIP); menu.AppendMenu(MF_STRING, IDC_WHOIS_IP, (TSTRING(WHO_IS) + _T(" ") + selectedIP).c_str() ); if (client && client->isOp()) { menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_STRING, IDC_BAN_IP, (_T("!banip ") + selectedIP).c_str()); menu.SetMenuDefaultItem(IDC_BAN_IP); menu.AppendMenu(MF_STRING, IDC_UNBAN_IP, (_T("!unban ") + selectedIP).c_str()); menu.AppendMenu(MF_SEPARATOR); } } else { menu.InsertSeparatorFirst(_T("Text")); } menu.AppendMenu(MF_STRING, ID_EDIT_COPY, CTSTRING(COPY)); menu.AppendMenu(MF_STRING, IDC_COPY_ACTUAL_LINE, CTSTRING(COPY_LINE)); if(!selectedURL.empty()) menu.AppendMenu(MF_STRING, IDC_COPY_URL, CTSTRING(COPY_URL)); } else { bool isMe = (selectedUser == Text::toT(client->getMyNick())); // click on nick copyMenu.CreatePopupMenu(); copyMenu.InsertSeparatorFirst(TSTRING(COPY)); for(int j=0; j < OnlineUser::COLUMN_LAST; j++) { copyMenu.AppendMenu(MF_STRING, IDC_COPY + j, CTSTRING_I(HubFrame::columnNames[j])); } menu.InsertSeparatorFirst(selectedUser); if(!isMe) { menu.AppendMenu(MF_STRING, IDC_GETLIST, CTSTRING(GET_FILE_LIST)); menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_STRING, IDC_PRIVATEMESSAGE, CTSTRING(SEND_PRIVATE_MESSAGE)); menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_STRING, IDC_PUBLIC_MESSAGE, CTSTRING(SEND_PUBLIC_MESSAGE)); menu.AppendMenu(MF_STRING, IDC_SELECT_USER, CTSTRING(SELECT_USER_LIST)); } if(BOOLSETTING(LOG_PRIVATE_CHAT)) { menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_STRING, IDC_OPEN_USER_LOG, CTSTRING(OPEN_USER_LOG)); } menu.AppendMenu(MF_SEPARATOR); if(!isMe) { menu.AppendMenu(MF_STRING, IDC_ADD_TO_FAVORITES, CTSTRING(ADD_TO_FAVORITES)); const OnlineUserPtr ou = client->findUser(Text::fromT(selectedUser)); if(!FavoriteManager::getInstance()->isIgnoredUser(ou->getUser()->getCID())) { menu.AppendMenu(MF_STRING, IDC_IGNORE, CTSTRING(IGNORE_USER)); } else { menu.AppendMenu(MF_STRING, IDC_UNIGNORE, CTSTRING(UNIGNORE_USER)); } menu.AppendMenu(MF_SEPARATOR); } menu.AppendMenu(MF_POPUP, (UINT)(HMENU)copyMenu, CTSTRING(COPY)); if(!isMe) { menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_POPUP, (UINT)(HMENU)WinUtil::grantMenu, CTSTRING(GRANT_SLOTS_MENU)); menu.AppendMenu(MF_STRING, IDC_MATCH_QUEUE, CTSTRING(MATCH_QUEUE)); // add user commands prepareMenu(menu, ::UserCommand::CONTEXT_USER, client->getHubUrl()); } // default doubleclick action switch(SETTING(CHAT_DBLCLICK)) { case 0: menu.SetMenuDefaultItem(IDC_SELECT_USER); break; case 1: menu.SetMenuDefaultItem(IDC_PUBLIC_MESSAGE); break; case 2: menu.SetMenuDefaultItem(IDC_PRIVATEMESSAGE); break; case 3: menu.SetMenuDefaultItem(IDC_GETLIST); break; case 4: menu.SetMenuDefaultItem(IDC_MATCH_QUEUE); break; case 6: menu.SetMenuDefaultItem(IDC_ADD_TO_FAVORITES); break; } } menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_STRING, ID_EDIT_SELECT_ALL, CTSTRING(SELECT_ALL)); menu.AppendMenu(MF_STRING, ID_EDIT_CLEAR_ALL, CTSTRING(CLEAR)); //flag to indicate pop up menu. m_bPopupMenu = true; menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, m_hWnd); return 0; }
void Gevents::OnEvent(SDL_Event* Event) { switch(Event->type) { case SDL_KEYDOWN: { OnKeyDown(Event->key.keysym.sym,Event->key.keysym.mod,Event->key.keysym.scancode); break; } case SDL_KEYUP: { OnKeyUp(Event->key.keysym.sym,Event->key.keysym.mod,Event->key.keysym.scancode); break; } case SDL_MOUSEMOTION: { OnMouseMove(Event->motion.x,Event->motion.y,Event->motion.xrel,Event->motion.yrel,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_LEFT))!=0,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_RIGHT))!=0,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_MIDDLE))!=0); break; } case SDL_MOUSEBUTTONDOWN: { switch(Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonDown(Event->button.x,Event->button.y); OnLButtonDown(Event->button.x, Event->button.y, Event->key.keysym.mod); break; } case SDL_BUTTON_RIGHT: { OnRButtonDown(Event->button.x,Event->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonDown(Event->button.x,Event->button.y); break; } } break; } case SDL_MOUSEBUTTONUP: { switch(Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonUp(Event->button.x,Event->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonUp(Event->button.x,Event->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonUp(Event->button.x,Event->button.y); break; } } break; } case SDL_JOYAXISMOTION: { OnJoyAxis(Event->jaxis.which,Event->jaxis.axis,Event->jaxis.value); break; } case SDL_JOYBALLMOTION: { OnJoyBall(Event->jball.which,Event->jball.ball,Event->jball.xrel,Event->jball.yrel); break; } case SDL_JOYHATMOTION: { OnJoyHat(Event->jhat.which,Event->jhat.hat,Event->jhat.value); break; } case SDL_JOYBUTTONDOWN: { OnJoyButtonDown(Event->jbutton.which,Event->jbutton.button); break; } case SDL_JOYBUTTONUP: { OnJoyButtonUp(Event->jbutton.which,Event->jbutton.button); break; } case SDL_QUIT: { OnExit(); break; } case SDL_SYSWMEVENT: { //Ignore break; } default: { OnUser(Event->user.type,Event->user.code,Event->user.data1,Event->user.data2); break; } } }
void Event::OnEvent(SDL_Event* Event) { switch(Event->type) { case SDL_TEXTINPUT: { OnTextEdit(Event->text.text); break; } case SDL_KEYDOWN: { OnKeyDown(Event->key.keysym.sym, (SDL_Keymod)Event->key.keysym.mod); break; } case SDL_KEYUP: { OnKeyUp(Event->key.keysym.sym, (SDL_Keymod)Event->key.keysym.mod); break; } case SDL_MOUSEMOTION: { OnMouseMove(Event->motion.x,Event->motion.y,Event->motion.xrel,Event->motion.yrel,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_LEFT))!=0,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_RIGHT))!=0,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_MIDDLE))!=0); break; } case SDL_MOUSEBUTTONDOWN: { switch(Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonDown(Event->button.x,Event->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonDown(Event->button.x,Event->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonDown(Event->button.x,Event->button.y); break; } } break; } case SDL_MOUSEBUTTONUP: { switch(Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonUp(Event->button.x,Event->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonUp(Event->button.x,Event->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonUp(Event->button.x,Event->button.y); break; } } break; } case SDL_MOUSEWHEEL: { if(Event->wheel.y > 0) { OnMouseWheel(true, false); } else { OnMouseWheel(false, true); } break; } case SDL_JOYAXISMOTION: { OnJoyAxis(Event->jaxis.which,Event->jaxis.axis,Event->jaxis.value); break; } case SDL_JOYBALLMOTION: { OnJoyBall(Event->jball.which,Event->jball.ball,Event->jball.xrel,Event->jball.yrel); break; } case SDL_JOYHATMOTION: { OnJoyHat(Event->jhat.which,Event->jhat.hat,Event->jhat.value); break; } case SDL_JOYBUTTONDOWN: { OnJoyButtonDown(Event->jbutton.which,Event->jbutton.button); break; } case SDL_JOYBUTTONUP: { OnJoyButtonUp(Event->jbutton.which,Event->jbutton.button); break; } case SDL_QUIT: { OnExit(); break; } case SDL_SYSWMEVENT: { //Ignore break; } default: { OnUser(Event->user.type,Event->user.code,Event->user.data1,Event->user.data2); break; } } }
//============================================================================== void CEvent::OnEvent(SDL_Event* Event) { switch(Event->type) { case SDL_ACTIVEEVENT: { switch(Event->active.state) {//check to see what event has occured case SDL_APPMOUSEFOCUS: { if ( Event->active.gain ) OnMouseFocus(); else OnMouseBlur(); break; } case SDL_APPINPUTFOCUS: { if ( Event->active.gain ) OnInputFocus(); else OnInputBlur(); break; } case SDL_APPACTIVE: { if ( Event->active.gain ) OnRestore(); else OnMinimize(); break; } } break; } case SDL_KEYDOWN: {//on key down pass in what was pressed OnKeyDown(Event->key.keysym.sym,Event->key.keysym.mod,Event->key.keysym.unicode); break; } case SDL_KEYUP: {//on key up pass in what was depressed OnKeyUp(Event->key.keysym.sym,Event->key.keysym.mod,Event->key.keysym.unicode); break; } case SDL_MOUSEMOTION: {// OnMouseMove(Event->motion.x,Event->motion.y,Event->motion.xrel,Event->motion.yrel,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_LEFT))!=0,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_RIGHT))!=0,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_MIDDLE))!=0); break; } case SDL_MOUSEBUTTONDOWN: {//if the button on the mouse is pressed pass in its x and y switch(Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonDown(Event->button.x,Event->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonDown(Event->button.x,Event->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonDown(Event->button.x,Event->button.y); break; } } break; } case SDL_MOUSEBUTTONUP: { switch(Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonUp(Event->button.x,Event->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonUp(Event->button.x,Event->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonUp(Event->button.x,Event->button.y); break; } } break; } case SDL_JOYAXISMOTION: {//stuff we dont use OnJoyAxis(Event->jaxis.which,Event->jaxis.axis,Event->jaxis.value); break; } case SDL_JOYBALLMOTION: { OnJoyBall(Event->jball.which,Event->jball.ball,Event->jball.xrel,Event->jball.yrel); break; } case SDL_JOYHATMOTION: { OnJoyHat(Event->jhat.which,Event->jhat.hat,Event->jhat.value); break; } case SDL_JOYBUTTONDOWN: { OnJoyButtonDown(Event->jbutton.which,Event->jbutton.button); break; } case SDL_JOYBUTTONUP: { OnJoyButtonUp(Event->jbutton.which,Event->jbutton.button); break; } case SDL_QUIT: {//if SDL is quit then run the exit function OnExit(); break; } //more stufff we dont use case SDL_SYSWMEVENT: { //Ignore break; } case SDL_VIDEORESIZE: { OnResize(Event->resize.w,Event->resize.h); break; } case SDL_VIDEOEXPOSE: { OnExpose(); break; } default: { OnUser(Event->user.type,Event->user.code,Event->user.data1,Event->user.data2); break; } } }
LRESULT CMainWnd::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { //创建窗口后先发送WM_CREATE消息创建控件,再发送WM_ERASEBKGND消息擦除背景,然后发送WM_SIZE消息调整窗口大小,发送WM_PAINT消息进行重绘 switch (uMsg) { case WM_CREATE: OnCreate(hWnd, wParam, lParam); break; case WM_PAINT: OnPaint(wParam, lParam);//绘制消息 break; case WM_ERASEBKGND: return OnEraseBkgnd(wParam, lParam); case WM_SIZE: OnSize(wParam, lParam);//大小改变消息 break; case WM_MOVE: GetWindowRect(hWnd, &rtWindow);//获取整个主窗体的窗口矩形 GetClientRectEx(&rtClient);//获取主窗体客户区的矩形 break; case WM_NOTIFY: OnNotify(wParam, lParam);//子窗体通知消息 break; case WM_COMMAND: OnCommand(wParam, lParam);//菜单或者按钮控件消息 break; case WM_MENUSELECT: OnMenuSelect(wParam, lParam); //菜单选择消息 break; case WM_LBUTTONDOWN: OnLButtonDown(wParam, lParam);//左键单击消息 break; case WM_LBUTTONDBLCLK: OnLButtonDbClick(wParam, lParam);//左键双击消息 break; case WM_RBUTTONDOWN: OnRButtonDown(wParam, lParam);//右键单击消息 break; case WM_MOUSEMOVE: OnMouseMove(wParam, lParam);//鼠标移动消息 break; case WM_KEYDOWN: OnKeyDown(wParam, lParam);//键盘按键消息 break; case WM_TIMER: OnTimer(wParam, lParam);//定时器消息 break; case WM_CLOSE: OnClose(wParam, lParam); //关闭窗体消息 break;//用户点击关闭按钮时,不需要系统来处理 case WM_DESTROY: OnDestroy(wParam, lParam); //破坏窗体消息 break; //自定义消息 case GM_NAME://设置引擎名 SetName((char*)wParam, (int)lParam); break; case GM_SHOWSTEP://显示着法信息(由其中支持模块发送) AppendStepHis((char*)wParam); Function::SaveBoardShot(); Function::SaveChessManual((char*)wParam); break; case GM_WINLOSE: Function::GameStop(); ShowWiner((int)lParam); break; default: return DefWindowProc(hWnd, uMsg, wParam, lParam);//处理不完全的消息或者其它消息统一由系统处理 } return 0; }
void CBaiDlg::OnLButtonDown(UINT nFlags, CPoint point) { OnRButtonDown(nFlags,point); CDialog::OnLButtonDown(nFlags, point); }
LRESULT RingDockSite::RingdowProc(HWND hWnd,RINGPARAMS param) { switch(param.uMsg) { case WM_CREATE: SetPos(m_rcPos.left,m_rcPos.top); SetCursor(m_windowInfo.hCursor); break; case WM_COMMAND: if(param.lParam != 0) return SendMessage(m_parent->Handle(),param.uMsg,param.wParam,param.lParam); else return OnDockBarHide(param.wParam); case RB_SETBKCOLOR: switch(param.wParam) { case RBIMG_HBITMAP: SetBgBmp((HBITMAP)param.lParam); return TRUE; case RBIMG_IDBMP: SetBgBmp((LPCTSTR)param.lParam); return TRUE; case RBIMG_BKCOLOR: SetBgColor(param.lParam); return TRUE; default: return 0; } case WM_MOVE: case WM_SIZE: InvalidateRect(m_hWnd,NULL,TRUE); return DefaultProc(param); case WM_LBUTTONDBLCLK: return OnLButtonDbClk(param); case WM_LBUTTONDOWN: return OnLButtonDown(param); case WM_LBUTTONUP: return OnLButtonUp(param); case WM_MOUSEMOVE: return OnMouseMove(param); case WM_RBUTTONDOWN: return OnRButtonDown(param); case WM_NCPAINT: return 0; case WM_ERASEBKGND: return TRUE; case WM_PAINT: { PAINTSTRUCT ps; DrawSite(BeginPaint(m_hWnd,&ps),param); EndPaint(m_hWnd,&ps); return 0; } case WM_NOTIFY: switch(param.lpnmhdr->code) { case TTN_NEEDTEXT: { ((LPTOOLTIPTEXT)param.lParam)->hinst = GetInstance(); return SendMessage(m_parent->Handle(),WM_RINGTOOLTIP,((LPTOOLTIPTEXT)param.lParam)->hdr.idFrom,param.lParam); } //case TBN_DROPDOWN: //工具栏DropDown按钮 // return SendMessage(param.lpnmhdr->hwndFrom,param); } if(IsWindowPtr(m_parent)) return SendMessage(m_parent->Handle(),param); return DefaultProc(param); case WM_CLOSE: Show(SW_HIDE); break; //case WM_WINDOWPOSCHANGED: // InvalidateRect(m_hWnd,NULL,FALSE); // return 0; case WM_MEASUREITEM: { RingCoolMenu* rm = GetDockMenu(); if(rm) rm->MeasureItem(param.lpmeasureitem); return SendMessage(m_parent->Handle(),param.uMsg,param.wParam,param.lParam); } case WM_DRAWITEM: { RingCoolMenu* rm = GetDockMenu(); if(rm) rm->Draw(param.lpdrawitem); return SendMessage(m_parent->Handle(),param.uMsg,param.wParam,param.lParam); } //case WM_EXITSIZEMOVE: // InvalidateRect(m_hWnd,NULL,TRUE); // break; default: { LRESULT res = CtlColorProc(hWnd,param); if(res != RM_NOTPROCESS) return res; else return RingWnd::DefaultProc(param); } } return 0; }
void CEvent::OnEvent(SDL_Event* Event) { switch(Event->type) { case SDL_ACTIVEEVENT: { switch(Event->active.state) { case SDL_APPMOUSEFOCUS: { if ( Event->active.gain ) OnMouseFocus(); else OnMouseBlur(); break; } case SDL_APPINPUTFOCUS: { if ( Event->active.gain ) OnInputFocus(); else OnInputBlur(); break; } case SDL_APPACTIVE: { if ( Event->active.gain ) OnRestore(); else OnMinimize(); break; } } break; } case SDL_KEYDOWN: { OnKeyDown(Event->key.keysym.sym,Event->key.keysym.mod,Event->key.keysym.unicode); break; } case SDL_KEYUP: { OnKeyUp(Event->key.keysym.sym,Event->key.keysym.mod,Event->key.keysym.unicode); break; } case SDL_MOUSEMOTION: { OnMouseMove(Event->motion.x,Event->motion.y,Event->motion.xrel,Event->motion.yrel,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_LEFT))!=0,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_RIGHT))!=0,(Event->motion.state&SDL_BUTTON(SDL_BUTTON_MIDDLE))!=0); break; } case SDL_MOUSEBUTTONDOWN: { switch(Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonDown(Event->button.x,Event->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonDown(Event->button.x,Event->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonDown(Event->button.x,Event->button.y); break; } } break; } case SDL_MOUSEBUTTONUP: { switch(Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonUp(Event->button.x,Event->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonUp(Event->button.x,Event->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonUp(Event->button.x,Event->button.y); break; } } break; } case SDL_JOYAXISMOTION: { OnJoyAxis(Event->jaxis.which,Event->jaxis.axis,Event->jaxis.value); break; } case SDL_JOYBALLMOTION: { OnJoyBall(Event->jball.which,Event->jball.ball,Event->jball.xrel,Event->jball.yrel); break; } case SDL_JOYHATMOTION: { OnJoyHat(Event->jhat.which,Event->jhat.hat,Event->jhat.value); break; } case SDL_JOYBUTTONDOWN: { OnJoyButtonDown(Event->jbutton.which,Event->jbutton.button); break; } case SDL_JOYBUTTONUP: { OnJoyButtonUp(Event->jbutton.which,Event->jbutton.button); break; } case SDL_QUIT: { OnExit(); break; } case SDL_SYSWMEVENT: { //Ignore break; } case SDL_VIDEORESIZE: { OnResize(Event->resize.w,Event->resize.h); break; } case SDL_VIDEOEXPOSE: { OnExpose(); break; } default: { OnUser(Event->user.type,Event->user.code,Event->user.data1,Event->user.data2); break; } } }
bool TextViewBase::HandleWndProc(UINT msg, WPARAM wParam, LPARAM lParam, LONG *pResult) { HIMC hIMC = NULL; switch (msg) { // Draw contents of TextView whenever window needs updating case WM_ERASEBKGND: *pResult = 1; return true; // Need to custom-draw the border for XP/Vista themes case WM_NCPAINT: *pResult = OnNcPaint((HRGN)wParam); return true; case WM_PAINT: *pResult = OnPaint(); return true; // Set a new font case WM_SETFONT: *pResult = OnSetFont((HFONT)wParam); return true; case WM_SIZE: *pResult = OnSize(wParam, LOWORD(lParam), HIWORD(lParam)); return true; case WM_VSCROLL: *pResult = OnVScroll(LOWORD(wParam), HIWORD(wParam)); return true; case WM_HSCROLL: *pResult = OnHScroll(LOWORD(wParam), HIWORD(wParam)); return true; case WM_MOUSEACTIVATE: *pResult = OnMouseActivate((HWND)wParam, LOWORD(lParam), HIWORD(lParam)); return true; //case WM_CONTEXTMENU: // return OnContextMenu((HWND)wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); case WM_MOUSEWHEEL: if (IsKeyPressed(VK_CONTROL)) return false; else *pResult = OnMouseWheel((short)HIWORD(wParam)); return true; case WM_SETFOCUS: *pResult = OnSetFocus((HWND)wParam); return true; case WM_KILLFOCUS: *pResult = OnKillFocus((HWND)wParam); return true; // make sure we get arrow-keys, enter, tab, etc when hosted inside a dialog case WM_GETDLGCODE: *pResult = DLGC_WANTALLKEYS;//DLGC_WANTMESSAGE;//DLGC_WANTARROWS; return true; case WM_LBUTTONDOWN: *pResult = OnLButtonDown(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); return true; case WM_LBUTTONUP: *pResult = OnLButtonUp(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); return true; case WM_LBUTTONDBLCLK: *pResult = OnLButtonDblClick(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); return true; case WM_RBUTTONDOWN: *pResult = OnRButtonDown(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); return true; case WM_MOUSEMOVE: *pResult = OnMouseMove(wParam, (short)LOWORD(lParam), (short)HIWORD(lParam)); return true; case WM_KEYDOWN: *pResult = OnKeyDown(wParam, lParam); return true; case WM_UNDO: case TXM_UNDO: case EM_UNDO: *pResult = Undo(); return true; case TXM_REDO : case EM_REDO: *pResult = Redo(); return true; case TXM_CANUNDO: case EM_CANUNDO: *pResult = CanUndo(); return true; case TXM_CANREDO: case EM_CANREDO: *pResult = CanRedo(); return true; case WM_CHAR: OutputDebugString(L"WM_CHAR\n"); *pResult = OnChar(wParam, lParam); return true; case WM_SETCURSOR: if (LOWORD(lParam) == HTCLIENT) { *pResult = TRUE; return true; } else return false; case WM_COPY: *pResult = OnCopy(); return true; case WM_CUT: *pResult = OnCut(); return true; case WM_PASTE: *pResult = OnPaste(); return true; case WM_CLEAR: *pResult = OnClear(); return true; case WM_GETTEXT: *pResult = GetText((WCHAR*)lParam, 0, (ULONG)wParam); return true; case WM_SETTEXT: *pResult = OnSetText((WCHAR*)lParam, lstrlen((WCHAR*)lParam)); return true; //case TXM_SETTEXT: // { // ClearFile(); // EnterText((WCHAR*)lParam, (LONG)wParam); // return 0; // } case WM_TIMER: *pResult = OnTimer(wParam); return true; case WM_IME_STARTCOMPOSITION: OutputDebugString(L"WM_IME_STARTCOMPOSITION\n"); *pResult = OnStartComposition(wParam, lParam); return true; //return DefWindowProc(m_hWnd, WM_IME_STARTCOMPOSITION, wParam, lParam); case WM_IME_COMPOSITION: OutputDebugString(L"WM_IME_COMPOSITION\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_COMPOSITION, wParam, lParam); return true; //return OnComposition(wParam, lParam); case WM_IME_ENDCOMPOSITION: OutputDebugString(L"WM_IME_ENDCOMPOSITION\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_ENDCOMPOSITION, wParam, lParam); return true; //return OnEndComposition(wParam, lParam); case WM_IME_CHAR: OutputDebugString(L"WM_IME_CHAR\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_CHAR, wParam, lParam); return true; case WM_IME_CONTROL: OutputDebugString(L"WM_IME_CONTROL\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_CONTROL, wParam, lParam); return true; case WM_IME_NOTIFY: OutputDebugString(L"WM_IME_NOTIFY\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_NOTIFY, wParam, lParam); return true; //return HandleImeNotify(wParam, lParam); case WM_IME_REQUEST: OutputDebugString(L"WM_IME_REQUEST\n"); *pResult = DefWindowProc(m_hWnd, WM_IME_REQUEST, wParam, lParam); return true; case WM_INPUTLANGCHANGE: *pResult = OnInputLanChange(wParam, lParam); return true; case TXM_PRINT: *pResult = OnPrint((HDC)wParam, (int)lParam); return true; // case TXM_OPENFILE: *pResult = OpenFile((TCHAR *)lParam); return true; case TXM_SAVEFILE: *pResult = SaveFile((TCHAR *)lParam); return true; case TXM_IMPORTFILE: *pResult = ImportFile((TCHAR *)lParam, (int)wParam); return true; case TXM_EXPORTFILE: { int convertype = LOWORD(wParam); int utf_type = HIWORD(wParam); *pResult = ExportFile((TCHAR *)lParam, convertype, utf_type); return true; } case TXM_CLEAR: *pResult = ClearFile(); return true; case TXM_GETFORMAT: *pResult = m_pTextDoc->getformat(); return true; case TXM_SETFORMAT: *pResult = m_pTextDoc->setformat((int)wParam); return true; case TXM_GETSELSIZE: *pResult = SelectionSize(); return true; case TXM_SETSELALL: *pResult = SelectAll(); return true; case TXM_GETCURPOS: *pResult = m_CurrentCharPos.get(); return true; case TXM_GETCURLINE_D: *pResult = m_nCurrentLine_D; return true; case TXM_GETCURLINE_V: *pResult = OnGetCurLineV(); return true; case TXM_GETCURCOL: *pResult = OnGetCurCol(); return true; case TXM_GETEDITMODE: *pResult = m_nEditMode; return true; case TXM_SETEDITMODE: lParam = m_nEditMode; m_nEditMode = wParam; *pResult = lParam; return true; case TXM_FIND_INIT: FindInitial((WCHAR*)lParam); *pResult = 0; return true; case TXM_FIND: { BOOL m = (BOOL)LOWORD(wParam); BOOL b = (BOOL)HIWORD(wParam); //FindText() if (b) *pResult = FindBackward(m, NULL); else *pResult = FindForward(m, NULL); return true; } case TXM_FIND_TEXT: { FIND_OPTION* fp = (FIND_OPTION*)(lParam); *pResult = Find_Text(fp->text, lstrlen(fp->text), fp->fBackward, fp->fMachCase, fp->fWarp); return true; } case TXM_REPLACE_TEXT: { *pResult = Replace_Text((REPLACE_OPTION*)(lParam)); return true; } case TXM_SETRESMODULE: { *pResult = OnSetResModule((HMODULE)lParam); return true; } case WM_GETTEXTLENGTH: case TXM_GETTEXTLEN: { *pResult = OnGetTextLen(); return true; } case TXM_REPLACE: { BOOL ra = (BOOL)LOWORD(wParam); WORD mb = (WORD)HIWORD(wParam); BOOL m = (BOOL)LOBYTE(mb); BOOL b = (BOOL)HIBYTE(mb); if (b) *pResult = FindBackward(m, (WCHAR*)lParam, ra); else *pResult = FindForward(m, (WCHAR*)lParam, ra); return true; } case TXM_FIND_GETTEXTLENGTH: *pResult = m_pFndIterator->find_text_length(); return true; case TXM_GETSELSTART: *pResult = m_nSelectionStart; return true; case TXM_GETSELEND: *pResult = m_nSelectionEnd; return true; case TXM_GETSELTEXT: *pResult = OnGetSelText((WCHAR*)wParam, ULONG(lParam)); return true; case TXM_SETTESTERMODE: OnTesterMode((bool)wParam); *pResult = 0; return true; case TXM_SETCONTEXTMENU: m_hUserMenu = (HMENU)wParam; *pResult = 0; return true; case TXM_STATISTIC: *pResult = OnDoStatistic((STATISTIC*)(lParam)); return true; case TXM_GETCONVERTTYPES: *pResult = OnGetConvertTypes((convert_type*)(lParam)); return true; case EM_GETSEL: *pResult = OnMsg_EM_GETSEL((ULONG*)wParam, (ULONG*)lParam); return true; case EM_SETSEL: *pResult = OnMsg_EM_SETSEL((LONG)wParam, (LONG)lParam); return true; default: return false; } }
void tcStoresGui::OnLButtonDClick(wxMouseEvent& event) { OnRButtonDown(event); }
bool CUIMainDialog::MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { // Mouse messages switch(uMsg) { case WM_LBUTTONDOWN: case WM_MBUTTONDOWN: case WM_RBUTTONDOWN: SetCapture(hWnd); break; case WM_LBUTTONUP: case WM_MBUTTONUP: case WM_RBUTTONUP: ReleaseCapture(); break; } switch(uMsg) { case WM_MOUSEMOVE: case WM_LBUTTONDOWN: case WM_LBUTTONUP: case WM_MBUTTONDOWN: case WM_MBUTTONUP: case WM_RBUTTONDOWN: case WM_RBUTTONUP: case WM_LBUTTONDBLCLK: case WM_MBUTTONDBLCLK: case WM_RBUTTONDBLCLK: case WM_MOUSEWHEEL: { POINT mousePoint = { short(LOWORD(lParam)), short(HIWORD(lParam)) }; switch(uMsg) { case WM_LBUTTONDBLCLK: OnLButtonDblClk(mousePoint); break; case WM_LBUTTONDOWN: OnLButtonDown(mousePoint); break; case WM_LBUTTONUP: OnLButtonUp(mousePoint); break; case WM_RBUTTONDBLCLK: OnRButtonDblClk(mousePoint); break; case WM_RBUTTONDOWN: OnRButtonDown(mousePoint); break; case WM_RBUTTONUP: OnRButtonUp(mousePoint); break; case WM_MBUTTONDBLCLK: OnMButtonDblClk(mousePoint); break; case WM_MBUTTONDOWN: OnMButtonDown(mousePoint); break; case WM_MBUTTONUP: OnMButtonUp(mousePoint); break; case WM_MOUSEMOVE: OnMouseMove(mousePoint); break; case WM_MOUSEWHEEL: //GetCursorPos(&mousePoint); ::ScreenToClient(hWnd,&mousePoint); OnMouseWheel(mousePoint,(short) HIWORD(wParam)); break; } } break; } UISetHWND(hWnd); // Let the CUIIMEEditBox's static message proc handle the msg. // This is because some IME messages must be handled to ensure // proper functionalities and the static msg proc ensures that // this happens even if no control has the input focus. if(CIME::StaticMsgProc(uMsg, wParam, lParam)) { //return true; } switch(uMsg) { case WM_SIZE: { RECT rc= {0,0,LOWORD(lParam), HIWORD(lParam)}; OnSize(rc); } break; case WM_ACTIVATEAPP: // Call OnFocusIn()/OnFocusOut() of the control that currently has the focus // as the application is activated/deactivated. This matches the Windows // behavior. if(s_pControlFocus && s_pControlFocus->GetEnabled()) { if(wParam) s_pControlFocus->OnFocusIn(); else s_pControlFocus->OnFocusOut(); } break; // Keyboard messages case WM_KEYDOWN: case WM_SYSKEYDOWN: case WM_KEYUP: case WM_SYSKEYUP: { // If a control is in focus, it belongs to this dialog, and it's enabled, then give // it the first chance at handling the message. if(s_pControlFocus && s_pControlFocus->GetEnabled()) { if(s_pControlFocus->HandleKeyboard(uMsg, wParam, lParam)) return true; } } break; case WM_CAPTURECHANGED: { // The application has lost mouse capture. // The dialog object may not have received // a WM_MOUSEUP when capture changed. Reset // m_bDrag so that the dialog does not mistakenly // think the mouse button is still held down. // if((HWND)lParam != hWnd) // { // SetPressed(false); // } // break; } } // 含焦点的控件 要优先处理消息 跨dialog处理 if(s_pControlFocus && s_pControlFocus->GetEnabled()) { // If the control MsgProc handles it, then we don't. if(s_pControlFocus->MsgProc(uMsg, wParam, lParam)) return true; } if(CUIDialog::MsgProc(hWnd, uMsg, wParam, lParam)) { return true; } //ClearState(); return false; }
void CEvent::OnEvent(SDL_Event* Event) { switch (Event->type) { case SDL_WINDOWEVENT: { switch (Event->window.event) { case SDL_WINDOWEVENT_ENTER: { OnMouseFocus(); break; } case SDL_WINDOWEVENT_LEAVE: { OnMouseBlur(); break; } case SDL_WINDOWEVENT_FOCUS_GAINED: { OnInputFocus(); break; } //keyboard focus. What is keyboard focus? case SDL_WINDOWEVENT_FOCUS_LOST: { OnInputBlur(); break; } case SDL_WINDOWEVENT_RESTORED: { OnRestore(); break; } case SDL_WINDOWEVENT_MINIMIZED: { OnMinimize(); break; } case SDL_WINDOWEVENT_RESIZED: { OnResize(Event->window.data1, Event->window.data2); break; } case SDL_WINDOWEVENT_EXPOSED: { OnExpose(); break; } case SDL_WINDOWEVENT_CLOSE: { OnExit(); break; } } break; } case SDL_KEYDOWN: { OnKeyDown(Event->key.keysym.sym, Event->key.keysym.mod); break; } case SDL_KEYUP: { OnKeyUp(Event->key.keysym.sym, Event->key.keysym.mod); break; } case SDL_MOUSEMOTION: { OnMouseMove(Event->motion.x, Event->motion.y, Event->motion.xrel, Event->motion.yrel, (Event->motion.state&SDL_BUTTON(SDL_BUTTON_LEFT)) != 0, (Event->motion.state&SDL_BUTTON(SDL_BUTTON_RIGHT)) != 0, (Event->motion.state&SDL_BUTTON(SDL_BUTTON_MIDDLE)) != 0); break; } case SDL_MOUSEBUTTONDOWN: { switch (Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonDown(Event->button.x, Event->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonDown(Event->button.x, Event->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonDown(Event->button.x, Event->button.y); break; } } break; } case SDL_MOUSEBUTTONUP: { switch (Event->button.button) { case SDL_BUTTON_LEFT: { OnLButtonUp(Event->button.x, Event->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonUp(Event->button.x, Event->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonUp(Event->button.x, Event->button.y); break; } } break; } case SDL_JOYAXISMOTION: { OnJoyAxis(Event->jaxis.which, Event->jaxis.axis, Event->jaxis.value); break; } case SDL_JOYBALLMOTION: { OnJoyBall(Event->jball.which, Event->jball.ball, Event->jball.xrel, Event->jball.yrel); break; } case SDL_JOYHATMOTION: { OnJoyHat(Event->jhat.which, Event->jhat.hat, Event->jhat.value); break; } case SDL_JOYBUTTONDOWN: { OnJoyButtonDown(Event->jbutton.which, Event->jbutton.button); break; } case SDL_JOYBUTTONUP: { OnJoyButtonUp(Event->jbutton.which, Event->jbutton.button); break; } case SDL_QUIT: { OnExit(); break; } case SDL_SYSWMEVENT: { //Ignore break; } default: { OnUser(Event->user.type, Event->user.code, Event->user.data1, Event->user.data2); break; } } }
LRESULT WindowImplBase::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) { LRESULT lRes = 0; BOOL bHandled = TRUE; CPoint pt; switch (uMsg) { case WM_CREATE: lRes = OnCreate(uMsg, wParam, lParam, bHandled); break; case WM_CLOSE: lRes = OnClose(uMsg, wParam, lParam, bHandled); break; case WM_DESTROY: lRes = OnDestroy(uMsg, wParam, lParam, bHandled); break; #if defined(WIN32) && !defined(UNDER_CE) case WM_NCACTIVATE: lRes = OnNcActivate(uMsg, wParam, lParam, bHandled); break; case WM_NCCALCSIZE: lRes = OnNcCalcSize(uMsg, wParam, lParam, bHandled); break; case WM_NCPAINT: lRes = OnNcPaint(uMsg, wParam, lParam, bHandled); break; case WM_NCHITTEST: lRes = OnNcHitTest(uMsg, wParam, lParam, bHandled); break; case WM_GETMINMAXINFO: lRes = OnGetMinMaxInfo(uMsg, wParam, lParam, bHandled); break; case WM_MOUSEWHEEL: { pt.x = GET_X_LPARAM( lParam ); pt.y = GET_Y_LPARAM( lParam ); lRes = OnMouseWheel(uMsg,GET_KEYSTATE_WPARAM(wParam),GET_WHEEL_DELTA_WPARAM(wParam),pt,bHandled); break; } #endif case WM_SIZE: lRes = OnSize(uMsg, wParam, lParam, bHandled); break; case WM_CHAR: lRes = OnChar(uMsg, wParam, lParam, bHandled); break; case WM_SYSCOMMAND: lRes = OnSysCommand(uMsg, wParam, lParam, bHandled); break; case WM_KEYDOWN: { lRes = OnKeyDown( uMsg,wParam, lParam&0xff, lParam>>16 ,bHandled); break; } case WM_KEYUP: { lRes = OnKeyUp(uMsg, wParam, lParam&0xff, lParam>>16,bHandled ); break; } case WM_SYSKEYDOWN: { lRes=OnSysKeyDown(uMsg,wParam,lParam&0xff,lParam>>16,bHandled); break; } case WM_SYSKEYUP: { lRes=OnSysKeyUp(uMsg,wParam,lParam&0xff,lParam>>16,bHandled); break; } case WM_KILLFOCUS: lRes = OnKillFocus(uMsg, wParam, lParam, bHandled); break; case WM_SETFOCUS: lRes = OnSetFocus(uMsg, wParam, lParam, bHandled); break; case WM_LBUTTONUP: lRes = OnLButtonUp(uMsg, wParam, lParam, bHandled); break; case WM_LBUTTONDOWN: lRes = OnLButtonDown(uMsg, wParam, lParam, bHandled); break; case WM_RBUTTONDOWN: { lRes = OnRButtonDown(uMsg,wParam,lParam,bHandled); break; } case WM_RBUTTONUP: { lRes = OnRButtonUp(uMsg,wParam,lParam,bHandled); break; } case WM_MOUSEMOVE: { pt.x = GET_X_LPARAM( lParam ); pt.y = GET_Y_LPARAM( lParam ); lRes = OnMouseMove(uMsg, wParam, pt, bHandled); break; } case WM_MOUSEHOVER: { lRes = OnMouseHover(uMsg, wParam, lParam, bHandled); break; } #if(WINVER >= 0x0601) case WM_TOUCH: { UINT cInputs = LOWORD(wParam); HTOUCHINPUT hTouchInput=(HTOUCHINPUT)lParam; lRes = OnTouch(uMsg, cInputs, hTouchInput, bHandled); //If the application does not process the message, it must call DefWindowProc if (lRes==FALSE) { ::DefWindowProc(*this,uMsg,wParam,lParam); } break; } #endif #if(WINVER >= 0x0602) case WM_POINTERUP: { lRes = OnPointerUp(uMsg,wParam,lParam,bHandled); break; } case WM_POINTERDOWN: { lRes = OnPointerDown(uMsg,wParam,lParam,bHandled); break; } #endif default: { bHandled = FALSE; break; } } if (bHandled) { return lRes; } lRes = HandleCustomMessage(uMsg, wParam, lParam, bHandled); if(bHandled) { return lRes; } if (m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes)) { return lRes; } return CWindowWnd::HandleMessage(uMsg, wParam, lParam); }
LRESULT KItemEventMgr::EventItemProc(UINT uMsg, WPARAM wParam, LPARAM lParam) { float fX = (float)(GET_X_LPARAM(lParam)); float fY = (float)(GET_Y_LPARAM(lParam)); switch(uMsg) { case WM_LBUTTONDOWN: OnMouseEnterOrLeave(fX, fY, false); return OnLButtonDown(fX, fY); case WM_LBUTTONUP: OnMouseEnterOrLeave(fX, fY, false); return OnLButtonUp(fX, fY); case WM_LBUTTONDBLCLK: OnMouseEnterOrLeave(fX, fY, false); return OnLButtonDBClick(fX, fY); case WM_RBUTTONDOWN: OnMouseEnterOrLeave(fX, fY, false); return OnRButtonDown(fX, fY); case WM_RBUTTONUP: OnMouseEnterOrLeave(fX, fY, false); return OnRButtonUp(fX, fY); case WM_RBUTTONDBLCLK: OnMouseEnterOrLeave(fX, fY, false); return OnRButtonDBClick(fX, fY); case WM_MBUTTONDOWN: OnMouseEnterOrLeave(fX, fY, false); return OnMButtonDown(fX, fY); case WM_MBUTTONUP: OnMouseEnterOrLeave(fX, fY, false); return OnMButtonUp(fX, fY); case WM_MBUTTONDBLCLK: OnMouseEnterOrLeave(fX, fY, false); return OnMButtonDBClick(fX, fY); case WM_MOUSEHOVER: OnMouseEnterOrLeave(fX, fY, false); return OnMouseHover(fX, fY); case WM_MOUSEMOVE: OnMouseEnterOrLeave(fX, fY, false); return OnMouseMove(fX, fY); case WND_M_MOUSE_ENTER: { int nX = 0; int nY = 0; g_pUI->m_Pointer.GetCursorPos(nX, nY); fX = (float)nX; fY = (float)nY; OnMouseEnterOrLeave(fX, fY, false); } break; case WND_M_REFRESH_TIP: if (m_pLastMouseOverItem) { g_pUI->m_Script.FireItemEvent(m_pLastMouseOverItem, "OnItemRefreshTip"); } break; case WND_M_MOUSE_LEAVE: OnMouseEnterOrLeave(0.0f, 0.0f, true); break; case WM_MOUSEWHEEL: { OnMouseEnterOrLeave(fX, fY, false); int nRet = OnFireMouseWheelEvent(-(GET_Y_LPARAM(wParam)) / WHEEL_DELTA, fX, fY); OnMouseEnterOrLeave(fX, fY, false); return nRet; } break; case WM_KEYDOWN: case WM_SYSKEYDOWN: return OnFireKeyDownEvent(wParam); break; case WM_KEYUP: case WM_SYSKEYUP: return OnFireKeyUpEvent(wParam); break; } return FALSE; }
//-------------------------------------------------------------------------------- bool CPointerController::ProcessMessage( COSWindow& Window, Cmp_long_ptr& lResult, unsigned int uMsg, Cmp_uint_ptr wParam, Cmp_long_ptr lParam ) { _WINQ_FCONTEXT( "CPointerController::ProcessMessage" ); bool bProcessed = ProcessHook( Window, lResult, uMsg, wParam, lParam ); switch ( uMsg ) { case COSWindow::wmMouseMove: { OnMouseMove( Window, wParam, lParam ); lResult = 0; bProcessed = true; } break; case COSWindow::wmLButtonDown: { OnLButtonDown( Window, wParam, lParam ); lResult = 0; bProcessed = true; } break; case COSWindow::wmLButtonUp: { OnLButtonUp( Window, wParam, lParam ); lResult = 0; bProcessed = true; } break; case COSWindow::wmLButtonDblClk: { OnLButtonDblClk( Window, wParam, lParam ); lResult = 0; bProcessed= true; } break; case COSWindow::wmRButtonDown: { OnRButtonDown( Window, wParam, lParam ); lResult = 0; bProcessed = true; } break; case COSWindow::wmRButtonUp: { OnRButtonUp( Window, wParam, lParam ); lResult = 0; bProcessed = true; } break; case COSWindow::wmRButtonDblClk: { OnRButtonDblClk( Window, wParam, lParam ); lResult = 0; bProcessed= true; } break; case COSWindow::wmMButtonDown: { OnMButtonDown( Window, wParam, lParam ); lResult = 0; bProcessed = true; } break; case COSWindow::wmMButtonUp: { OnMButtonUp( Window, wParam, lParam ); lResult = 0; bProcessed = true; } break; case COSWindow::wmMButtonDblClk: { OnMButtonDblClk( Window, wParam, lParam ); lResult = 0; bProcessed= true; } break; #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) case COSWindow::wmMouseWheel: { OnMouseWheel( Window, wParam, lParam ); lResult = 0; bProcessed = true; } break; #endif case COSWindow::wmCaptureChanged: { COSWindow::refType refWindow = COSWindow::FromHandle( CWindowHandle( 0, (void*)(lParam) ).Ref() ); OnCaptureChanged( Window, refWindow ); lResult = 0; bProcessed = true; } break; #if((_WIN32_WINNT >= 0x0400) || (WINVER >= 0x0500)) case COSWindow::wmMouseHover: { OnMouseHover( Window, wParam, lParam ); lResult = 0; bProcessed = true; } break; case COSWindow::wmMouseLeave: { OnMouseLeave( Window ); lResult = 0; bProcessed = true; } break; #endif } return bProcessed; }
void Event::OnEvent(SDL_Event * e) { switch(e->type) { case SDL_ACTIVEEVENT: { switch(e->active.state) { case SDL_APPMOUSEFOCUS: { if ( e->active.gain ) OnMouseFocus(); else OnMouseBlur(); break; } case SDL_APPINPUTFOCUS: { if ( e->active.gain ) OnInputFocus(); else OnInputBlur(); break; } case SDL_APPACTIVE: { if ( e->active.gain ) OnRestore(); else OnMinimize(); break; } } break; } case SDL_KEYDOWN: { OnKeyDown(e->key.keysym.sym,e->key.keysym.mod,e->key.keysym.unicode); break; } case SDL_KEYUP: { OnKeyUp(e->key.keysym.sym,e->key.keysym.mod,e->key.keysym.unicode); break; } case SDL_MOUSEMOTION: { OnMouseMove(e->motion.x,e->motion.y,e->motion.xrel,e->motion.yrel,(e->motion.state&SDL_BUTTON(SDL_BUTTON_LEFT))!=0,(e->motion.state&SDL_BUTTON(SDL_BUTTON_RIGHT))!=0,(e->motion.state&SDL_BUTTON(SDL_BUTTON_MIDDLE))!=0); break; } case SDL_MOUSEBUTTONDOWN: { switch(e->button.button) { case SDL_BUTTON_LEFT: { OnLButtonDown(e->button.x,e->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonDown(e->button.x,e->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonDown(e->button.x,e->button.y); break; } } break; } case SDL_MOUSEBUTTONUP: { switch(e->button.button) { case SDL_BUTTON_LEFT: { OnLButtonUp(e->button.x,e->button.y); break; } case SDL_BUTTON_RIGHT: { OnRButtonUp(e->button.x,e->button.y); break; } case SDL_BUTTON_MIDDLE: { OnMButtonUp(e->button.x,e->button.y); break; } } break; } case SDL_QUIT: { OnExit(); break; } case SDL_SYSWMEVENT: { //Ignore break; } case SDL_VIDEORESIZE: { OnResize(e->resize.w,e->resize.h); break; } case SDL_VIDEOEXPOSE: { OnExpose(); break; } default: { OnUser(e->user.type,e->user.code,e->user.data1,e->user.data2); break; } } }
LRESULT cOpenGLControl::WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_SETFOCUS: case WM_KILLFOCUS: case WM_ENABLE: Update(); break; case WM_SIZING: case WM_SIZE: UpdateSize(); OnSize(); Update(); break; case WM_PAINT: Paint(); return FALSE; case WM_ERASEBKGND: return TRUE; case WM_MOUSEMOVE: { const int x = int((short)LOWORD(lParam)); const int y = int((short)HIWORD(lParam)); if (!bMouseIn) { TRACKMOUSEEVENT tme; tme.cbSize = sizeof(TRACKMOUSEEVENT); tme.dwFlags = TME_LEAVE | TME_HOVER; tme.hwndTrack = hwnd; tme.dwHoverTime = HOVER_DEFAULT; ::TrackMouseEvent(&tme); OnMouseIn(); bMouseIn = true; } cKeyModifiers modifiers; GetModifiersForMouseEvent(modifiers, wParam); OnMouseMove(x, y, modifiers); } break; case WM_MOUSELEAVE: if (bMouseIn) { OnMouseOut(); bMouseIn = false; } break; case WM_MOUSEHOVER: if (bMouseIn) { const int x = int((short)LOWORD(lParam)); const int y = int((short)HIWORD(lParam)); cKeyModifiers modifiers; GetModifiersForMouseEvent(modifiers, wParam); OnMouseHover(x, y, modifiers); // Reset the track mouse event TRACKMOUSEEVENT tme; tme.cbSize = sizeof(TRACKMOUSEEVENT); tme.dwFlags = TME_LEAVE | TME_HOVER; tme.hwndTrack = hwnd; tme.dwHoverTime = HOVER_DEFAULT; ::TrackMouseEvent(&tme); } break; case WM_LBUTTONDOWN: { const int x = int((short)LOWORD(lParam)); const int y = int((short)HIWORD(lParam)); cKeyModifiers modifiers; GetModifiersForMouseEvent(modifiers, wParam); OnLButtonDown(x, y, modifiers); break; } case WM_LBUTTONUP: { const int x = int((short)LOWORD(lParam)); const int y = int((short)HIWORD(lParam)); cKeyModifiers modifiers; GetModifiersForMouseEvent(modifiers, wParam); OnLButtonUp(x, y, modifiers); break; } case WM_RBUTTONDOWN: { const int x = int((short)LOWORD(lParam)); const int y = int((short)HIWORD(lParam)); cKeyModifiers modifiers; GetModifiersForMouseEvent(modifiers, wParam); OnRButtonDown(x, y, modifiers); break; } case WM_RBUTTONUP: { const int x = int((short)LOWORD(lParam)); const int y = int((short)HIWORD(lParam)); cKeyModifiers modifiers; GetModifiersForMouseEvent(modifiers, wParam); OnRButtonUp(x, y, modifiers); break; } case WM_MBUTTONDOWN: { const int x = int((short)LOWORD(lParam)); const int y = int((short)HIWORD(lParam)); cKeyModifiers modifiers; GetModifiersForMouseEvent(modifiers, wParam); OnMButtonDown(x, y, modifiers); break; } case WM_MBUTTONUP: { const int x = int((short)LOWORD(lParam)); const int y = int((short)HIWORD(lParam)); cKeyModifiers modifiers; GetModifiersForMouseEvent(modifiers, wParam); OnMButtonUp(x, y, modifiers); break; } case WM_LBUTTONDBLCLK: { const int x = int((short)LOWORD(lParam)); const int y = int((short)HIWORD(lParam)); cKeyModifiers modifiers; GetModifiersForMouseEvent(modifiers, wParam); OnDoubleClick(x, y, modifiers); break; } case WM_MOUSEWHEEL: { POINT pt; pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); if (::ScreenToClient(hwnd, &pt) == TRUE) { cKeyModifiers modifiers; GetModifiersForMouseEvent(modifiers, wParam); OnMouseWheel(pt.x, pt.y, short(HIWORD(wParam)), modifiers); } break; } case WM_KEYDOWN: case WM_SYSKEYDOWN: if ((lParam & 0x40000000) == 0) { cKeyEvent event; event.key = wParam; event.modifiers.bControl = ((::GetKeyState(VK_CONTROL) & 0x8000) != 0); event.modifiers.bAlt = ((::GetKeyState(VK_MENU) & 0x8000) != 0); event.modifiers.bShift = ((::GetKeyState(VK_SHIFT) & 0x8000) != 0); OnKeyDown(event); } break; case WM_KEYUP: case WM_SYSKEYUP: if ((lParam & 0x40000000) == 0) { cKeyEvent event; event.key = wParam; event.modifiers.bControl = ((::GetKeyState(VK_CONTROL) & 0x8000) != 0); event.modifiers.bAlt = ((::GetKeyState(VK_MENU) & 0x8000) != 0); event.modifiers.bShift = ((::GetKeyState(VK_SHIFT) & 0x8000) != 0); OnKeyUp(event); } break; } return DefWindowProc(hwnd, uMsg, wParam, lParam); }
void CPopupEdit::OnRButtonDblClk(UINT nFlags, CPoint point) { OnRButtonDown(nFlags,point); }