// 캔버스 윈도우의 메시지 처리 함수 LRESULT CALLBACK CanvasProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { switch(iMessage) { case WM_CREATE: return OnCreate(hWnd,wParam,lParam); case WM_DESTROY: return OnDestroy(hWnd,wParam,lParam); case WM_PAINT: return OnPaint(hWnd,wParam,lParam); case WM_COMMAND: return OnCommand(hWnd,wParam,lParam); case WM_LBUTTONDOWN: return OnLButtonDown(hWnd,wParam,lParam); case WM_MOUSEMOVE: return OnMouseMove(hWnd,wParam,lParam); case WM_LBUTTONUP: return OnLButtonUp(hWnd,wParam,lParam); case WM_KEYDOWN: return OnKeyDown(hWnd,wParam,lParam); case WM_SETCURSOR: return OnSetCursor(hWnd,wParam,lParam); case WM_SIZE: return OnSize(hWnd,wParam,lParam); case WM_CONTEXTMENU: return OnContextMenu(hWnd,wParam,lParam); case WM_LBUTTONDBLCLK: return OnLButtonDblclk(hWnd,wParam,lParam); } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); }
LRESULT CHyperlink::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_LBUTTONDOWN: OnLButtonDown(); break; case WM_LBUTTONUP: OnLButtonUp(lParam); break; case WM_SETCURSOR: return OnSetCursor(); case WM_NCHITTEST: return HTCLIENT; // Claim that the mouse is in a client area } return WndProcDefault(uMsg, wParam, lParam); }
LRESULT EventMgr::OnMessage(UINT msg, WPARAM wParam, LPARAM lParam, bool& wasHandled) { wasHandled = false; if (WM_ENTERSIZEMOVE == msg) { inSizeMove = true; } if (WM_EXITSIZEMOVE == msg) { inSizeMove = false; } if (WM_SIZE == msg) { //int dx = LOWORD(lParam); //int dy = HIWORD(lParam); wndRoot->RequestLayout(); return 0; } wndRoot->LayoutIfRequested(); if (WM_SETCURSOR == msg) { POINT pt; if (GetCursorPos(&pt) && ScreenToClient(wndRoot->hwndParent, &pt)) return OnSetCursor(pt.x, pt.y, wasHandled); return 0; } if (WM_MOUSEMOVE == msg) { int x = GET_X_LPARAM(lParam); int y = GET_Y_LPARAM(lParam); return OnMouseMove(wParam, x, y, wasHandled); } if (WM_LBUTTONUP == msg) { int x = GET_X_LPARAM(lParam); int y = GET_Y_LPARAM(lParam); return OnLButtonUp(wParam, x, y, wasHandled); } if (WM_GETMINMAXINFO == msg) { return OnGetMinMaxInfo((MINMAXINFO*)lParam, wasHandled); } if (WM_PAINT == msg) { wndRoot->OnPaint(wndRoot->hwndParent); wasHandled = true; return 0; } return 0; }
/********************************************************************************************* > afx_msg void CRenderWnd::OnMouseMove(UINT32, CPoint) Author: Justin_Flude (Xara Group Ltd) <*****@*****.**> Created: ages ago Inputs: Not used. Outputs: - Returns: - Purpose: Passes the mouse message on to the parent CCamView via a call to CRenderWnd::PassMsgToParent(). Errors: - Scope: Protected SeeAlso: CRenderWnd::PassMsgToParent(); CCamView::OnMouseMove() **********************************************************************************************/ void CRenderWnd::OnMouseMove( wxMouseEvent &event ) { if (m_pView) m_pView->OnMouseMove( event ); #if defined(__WXGTK__) wxSetCursorEvent CursorEvent( event.m_x, event.m_y ); OnSetCursor( CursorEvent ); if( CursorEvent.HasCursor() ) { // The window cursor seems to be ignored, but is needed for // CaptureMouse to work wxSetCursor( CursorEvent.GetCursor() ); SetCursor( CursorEvent.GetCursor() ); } #endif }
LRESULT CInfoPanel::WndProc(HWND hWnd, UINT uCmd, WPARAM wParam, LPARAM lParam) { switch(uCmd) { case WM_CREATE: return OnCreate((LPCREATESTRUCT)lParam); case WM_SETCURSOR: return OnSetCursor(LOWORD(lParam),HIWORD(lParam)); case WM_DESTROY: return OnDestroy(); case WM_NOTIFY: { NMHDR *pNMHDR = (NMHDR*)lParam; switch(pNMHDR->code) { case NM_CUSTOMDRAW: return OnCustomDraw((NMCUSTOMDRAW*)pNMHDR); case NM_CLICK: return OnClick((NMITEMACTIVATE*)pNMHDR); } } } return DefWindowProc(hWnd,uCmd,wParam,lParam); }
LRESULT WINAPI WndProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam ) { switch( nMsg ) { case WM_SETCURSOR: if( OnSetCursor( hWnd, lParam ) ) { return 0; } break; case WM_PAINT: OnPaint( hWnd ); break; case WM_COMMAND: OnCommand( hWnd, wParam ); break; case WM_DESTROY: PostQuitMessage( 0 ); break; } return DefWindowProc( hWnd, nMsg, wParam, lParam ); }
//-------------------------------------------------------------------------------- long CTreeView::OnNotify( NotificationMessageHeader* pHdr ) { _WINQ_FCONTEXT( "CTreeView::OnNotify" ); long lResult = 0; if( pHdr != 0 ) { switch ( pHdr->m_uiCode ) { case NM_CLICK: { lResult = static_cast< long >( OnClick( pHdr ) ? 0 : 1 ); } break; case NM_CUSTOMDRAW: { lResult = OnCustomDraw( reinterpret_cast< NMTVCUSTOMDRAW* >( pHdr ) ); } break; case NM_DBLCLK: { lResult = static_cast< long >( OnDblClick( pHdr ) ? 0 : 1 ); } break; case NM_KILLFOCUS: { OnKillFocus( pHdr ); } break; case NM_RCLICK: { lResult = static_cast< long >( OnRClick( pHdr ) ? 0 : 1 ); } break; case NM_RDBLCLK: { lResult = static_cast< long >( OnRDblClick( pHdr ) ? 0 : 1 ); } break; case NM_RETURN: { lResult = static_cast< long >( OnReturn( pHdr ) ? 0 : 1 ); } break; #if ( _WIN32_IE >= 0x0400 ) case NM_SETCURSOR: { lResult = static_cast< long >( OnSetCursor( reinterpret_cast< NMMOUSE* >( pHdr ) ) ? 0 : 1 ); } break; #endif//( _WIN32_IE >= 0x0400 ) case NM_SETFOCUS: { OnSetFocus( pHdr ); } break; #if ( _WIN32_IE >= 0x0600 ) case TVN_ASYNCDRAW: { OnAsyncDraw( reinterpret_cast< NMTVASYNCDRAW* >( pHdr ) ); } break; #endif//( _WIN32_IE >= 0x0600 ) case TVN_BEGINDRAG: { OnBeginDrag( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; case TVN_BEGINLABELEDIT: { lResult = static_cast< long >( OnBeginLabelEdit( reinterpret_cast< NMTVDISPINFO* >( pHdr ) ) ? 0 : 1 ); } break; case TVN_BEGINRDRAG: { OnBeginRDrag( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; case TVN_DELETEITEM: { OnDeleteItem( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; case TVN_ENDLABELEDIT: { lResult = static_cast< long >( OnEndLabelEdit( reinterpret_cast< NMTVDISPINFO* >( pHdr ) ) ? 1 : 0 ); } break; case TVN_GETDISPINFO: { OnGetDispInfo( reinterpret_cast< NMTVDISPINFO* >( pHdr ) ); } break; #if ( _WIN32_IE >= 0x0400 ) case TVN_GETINFOTIP: { OnGetInfoTip( reinterpret_cast< NMTVGETINFOTIP* >( pHdr ) ); } break; #endif//( _WIN32_IE >= 0x0400 ) #if ( _WIN32_IE > 0x0600 ) case TVN_ITEMCHANGED: { lResult = static_cast< long >( OnItemChanged( reinterpret_cast< NMTVITEMCHANGE* >( pHdr ) ) ? 0 : 1 ); } break; case TVN_ITEMCHANGING: { lResult = static_cast< long >( OnItemChanging( reinterpret_cast< NMTVITEMCHANGE* >( pHdr ) ) ? 0 : 1 ); } break; #endif//( _WIN32_IE > 0x0600 ) case TVN_ITEMEXPANDED: { OnItemExpanded( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; case TVN_ITEMEXPANDING: { lResult = static_cast< long >( OnItemExpanding( reinterpret_cast< NMTREEVIEW* >( pHdr ) ) ? 0 : 1 ); } break; case TVN_KEYDOWN: { lResult = static_cast< long >( OnKeyDown( reinterpret_cast< NMTVKEYDOWN* >( pHdr ) ) ? 0 : 1 ); } break; case TVN_SELCHANGED: { OnSelChanged( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; case TVN_SELCHANGING: { lResult = static_cast< long >( OnSelChanging( reinterpret_cast< NMTREEVIEW* >( pHdr ) ) ? 0 : 1 ); } break; case TVN_SETDISPINFO: { OnSetDispInfo( reinterpret_cast< NMTVDISPINFO* >( pHdr ) ); } break; #if ( _WIN32_IE >= 0x0400 ) case TVN_SINGLEEXPAND: { lResult = OnSingleExpand( reinterpret_cast< NMTREEVIEW* >( pHdr ) ); } break; #endif//( _WIN32_IE >= 0x0400 ) default: { lResult = OnUnknownNotification( pHdr ); } break; } } return lResult; }
void CWeekTimePicker::OnMouseMove(UINT nFlags, CPoint point) { if (!m_bCanEdit) { CStatic::OnMouseMove(nFlags, point); return; } if (m_bLButtonDown) { if (m_nDragBarIndex >= 0) { if (m_bDragBarBorder) { if (point.x < m_vecWeekDayBarRect[m_nDragBarIndex].left) { point.x = m_vecWeekDayBarRect[m_nDragBarIndex].left; } if (point.x > m_vecWeekDayBarRect[m_nDragBarIndex].right) { point.x = m_vecWeekDayBarRect[m_nDragBarIndex].right; } if (m_bMoveLeft) { m_rcDragRect.left = point.x; } else { m_rcDragRect.right = point.x; } } else if (m_bDragBar) { int iMove = point.x - m_nLDownX; m_nLDownX = point.x; if (m_rcDragRect.left + iMove < m_vecWeekDayBarRect[m_nDragBarIndex].left) { iMove = m_vecWeekDayBarRect[m_nDragBarIndex].left - m_rcDragRect.left; } else if (m_rcDragRect.right + iMove > m_vecWeekDayBarRect[m_nDragBarIndex].right) { iMove = m_vecWeekDayBarRect[m_nDragBarIndex].right - m_rcDragRect.right; } m_rcDragRect.OffsetRect(iMove, 0); } RectToTime(m_nDragBarIndex, m_rcDragRect, m_timeValue.cstrBeginTime, m_timeValue.cstrEndTime); HDC hdc = ::GetDC(m_hWnd); ::SetBkMode(hdc, TRANSPARENT); ::SetTextColor(hdc, RGB(255,255,255)); HFONT hOldFont = (HFONT)::SelectObject(hdc, m_hFont); UpdateRectArea(hdc, m_nDragBarIndex); ::SelectObject(hdc, hOldFont); ::ReleaseDC(m_hWnd, hdc); //InvalidateRect(&m_vecWeekDayBarRect[m_iDragBarIndex], FALSE); } OnSetCursor(NULL, 0, 0); CStatic::OnMouseMove(nFlags, point); return; } else { m_bDragBarBorder = FALSE; m_bDragBar = FALSE; m_nDragBarIndex = -1; } CalcDragFlag(point, FALSE); OnSetCursor(NULL, 0, 0); CStatic::OnMouseMove(nFlags, point); }
int TextView::ProcessKey(GKey &K) { Flags &= ~(TVF_GOTO_START | TVF_GOTO_END | TVF_EAT_MOVE); if (!K.IsChar) { if (K.Shift()) { Flags |= TVF_SHIFT; } else { Flags &= ~(TVF_SHIFT); } if (K.Down()) { switch (K.c) { case VK_ESCAPE: { OnEscape(K); break; } case VK_RETURN: { OnEnter(K); break; } case VK_BACK: { if (K.Alt()) { if (K.Ctrl()) { Doc.Redo(User); } else { Doc.Undo(User); } Dirty(TVF_DIRTY_ALL); } else { if (Flags & TVF_SELECTION) { OnDeleteSelection(FALSE); UpdateHiddenCheck(); } else if (User.Y() > 0 || User.X() > 0) { Flags &= ~(TVF_SHIFT); OnMoveCursor(-1, 0); OnDeleteText(&User, 1, FALSE); } } break; } case VK_RIGHT: case VK_LEFT: { bool bLeft = K.c == VK_LEFT; int Inc = (bLeft) ? -1 : 1; if (bLeft) { Flags |= TVF_GOTO_START; } else { Flags |= TVF_GOTO_END; } Flags |= TVF_EAT_MOVE; if (K.Ctrl()) { char *c = User; if (bLeft) { OnMoveCursor(Inc, 0); c = User; while ( strchr(WhiteSpace, *c) AND OnMoveCursor(Inc, 0)) { c = User; } } if (strchr(Delimiters, *c)) { while ( strchr(Delimiters, *c) AND OnMoveCursor(Inc, 0)) { c = User; } } else { // IsText(*c) while ( !strchr(WhiteSpace, *c) AND OnMoveCursor(Inc, 0)) { c = User; } } if (bLeft) { if (User.Y() > 0 || User.X() > 0) { OnMoveCursor(-Inc, 0); } } else { while ( strchr(WhiteSpace, *c) AND OnMoveCursor(Inc, 0)) { c = User; } } } else { OnMoveCursor(Inc, 0); } break; } case VK_UP: { Flags |= TVF_GOTO_START; OnMoveCursor(0, -1); break; } case VK_DOWN: { Flags |= TVF_GOTO_END; OnMoveCursor(0, 1); break; } case VK_PRIOR: { int Move = 1-DisplayLines; OnSetHidden(HiddenLines+Move); OnMoveCursor(0, Move); break; } case VK_NEXT: { int Move = DisplayLines-1; OnSetHidden(HiddenLines+Move); OnMoveCursor(0, Move); break; } case VK_HOME: { if (K.Ctrl()) { OnSetCursor(0, 0); } else { OnMoveCursor(-User.X(), 0); } break; } case VK_END: { if (K.Ctrl()) { OnSetCursor(1024, Doc.GetLines()); } else { OnMoveCursor(User.LineLength()-User.X(), 0); } break; } case VK_DELETE: { if ( K.Shift() AND (Flags & TVF_SELECTION)) { Cut(); } else { if (Flags & TVF_SELECTION) { OnDeleteSelection(FALSE); UpdateHiddenCheck(); } else if ( User.Y() < Doc.GetLines() || User.X() < User.LineLength()) { OnDeleteText(&User, 1, FALSE); } } break; } case VK_INSERT: { if (Flags & TVF_SELECTION) { if (K.Ctrl()) { Copy(); } } if (K.Shift()) { Paste(); } break; } } } } else { // IsChar #define EXTENDED (1<<24) // if ( !(K.Data & EXTENDED)) { bool InsertChar = K.c >= ' '; // AND K.c < 128 if (K.c == 9) { if ((Flags & TVF_SELECTION) AND Start.Y() != End.Y()) { if (Flags & TVF_SHIFT) { InsertChar = !OnMultiLineTab(false); } else { InsertChar = !OnMultiLineTab(true); } } else { InsertChar = true; } } if (InsertChar) { char Char[2] = " "; Char[0] = K.c; if (OnInsertText(Char)) { OnMoveCursor(1, 0, true); } } } } return TRUE; }