// ---------------------------------------------------------------------------- // Name : MouseMessage() // Desc : // ---------------------------------------------------------------------------- WMSG_RESULT CUIListBoxMultiCol::MouseMessage( MSG *pMsg ) { // If list box is disabled if( !IsEnabled() ) return WMSG_FAIL; // Mouse point int nX = LOWORD( pMsg->lParam ); int nY = HIWORD( pMsg->lParam ); // Mouse message switch( pMsg->message ) { case WM_MOUSEMOVE: { if( m_bSelectList ) { m_nOverList = -1; if( IsInside( nX, nY ) ) { int nAbsY = GetAbsPosY(); m_nOverList = ( nY - nAbsY - m_nTextSY + m_nSelectOffsetY ) / m_nLineHeight; return WMSG_SUCCESS; } } if( m_bScrollBar ) { if( m_sbScrollBar.MouseMessage( pMsg ) != WMSG_FAIL ) return WMSG_SUCCESS; } } break; case WM_LBUTTONDOWN: { if( m_bSelectList ) { if( IsInside( nX, nY ) ) { int nAbsY = GetAbsPosY(); m_nOverList = ( nY - nAbsY - m_nTextSY + m_nSelectOffsetY ) / m_nLineHeight; int nRealSel = m_nOverList + m_sbScrollBar.GetScrollPos(); if( nRealSel >= 0 && nRealSel < m_sbScrollBar.GetCurItemCount() && IsSelectable(nRealSel) ) { m_nSelectList = nRealSel; return WMSG_COMMAND; } else if(!m_bAtLeastOneSelect) { m_nSelectList = -1; } return WMSG_SUCCESS; } } if( m_bScrollBar ) { if( m_sbScrollBar.MouseMessage( pMsg ) != WMSG_FAIL ) return WMSG_SUCCESS; } } break; case WM_LBUTTONUP: { if( m_bScrollBar ) { if( m_sbScrollBar.MouseMessage( pMsg ) != WMSG_FAIL ) return WMSG_SUCCESS; } } break; case WM_LBUTTONDBLCLK: { if( m_bSelectList ) { if( IsInside( nX, nY ) ) { int nAbsY = GetAbsPosY(); m_nOverList = ( nY - nAbsY - m_nTextSY + m_nSelectOffsetY ) / m_nLineHeight; int nRealSel = m_nOverList + m_sbScrollBar.GetScrollPos(); if( nRealSel >= 0 && nRealSel < m_sbScrollBar.GetCurItemCount() && IsSelectable(nRealSel) ) { m_nSelectList = nRealSel; return WMSG_COMMAND; } return WMSG_SUCCESS; } } if( m_bScrollBar ) { if( m_sbScrollBar.MouseMessage( pMsg ) != WMSG_FAIL ) return WMSG_SUCCESS; } } break; case WM_MOUSEWHEEL: { if( m_bScrollBar ) { if( m_sbScrollBar.MouseMessage( pMsg ) != WMSG_FAIL ) return WMSG_SUCCESS; } } break; } return WMSG_FAIL; }
//------------------------------------------------------------------------------ // CUITrackPopup::MouseMessage // Explain: 변경 사항 // 1. 셀렉션 처리 // 2. LButton Up 처리 // Date : 2005-05-16,Author: Lee Ki-hwan //------------------------------------------------------------------------------ WMSG_RESULT CUITrackPopup::MouseMessage( MSG *pMsg ) { // If list box is disabled if( !IsEnabled() ) return WMSG_FAIL; // Mouse point int nX = LOWORD( pMsg->lParam ); int nY = HIWORD( pMsg->lParam ); // Mouse message switch( pMsg->message ) { case WM_MOUSEMOVE: { if( m_bSelectList ) { m_nOverList = -1; if( IsInside( nX, nY ) ) { int nAbsY = GetAbsPosY(); // Over 시 Selection 되게 수정 m_nOverList = ( nY - nAbsY - m_nTextSY + m_nSelectOffsetY ) / m_nLineHeight; int nRealSel = m_nOverList + m_sbScrollBar.GetScrollPos(); if( nRealSel >= 0 && nRealSel < m_sbScrollBar.GetCurItemCount() ) { m_nSelectList = nRealSel; } SetFocus(true); return WMSG_SUCCESS; } } if( m_bScrollBar ) { if( m_sbScrollBar.MouseMessage( pMsg ) != WMSG_FAIL ) return WMSG_SUCCESS; } } break; case WM_LBUTTONDOWN: { if( m_bSelectList ) { // UP시에 선택 if( IsInside( nX, nY ) ) { return WMSG_SUCCESS; } } if( m_bScrollBar ) { if( m_sbScrollBar.MouseMessage( pMsg ) != WMSG_FAIL ) return WMSG_SUCCESS; } } break; case WM_LBUTTONUP: { if( m_bSelectList ) { // UP시에 선택 if( IsInside( nX, nY ) ) { int nAbsY = GetAbsPosY(); m_nOverList = ( nY - nAbsY - m_nTextSY + m_nSelectOffsetY ) / m_nLineHeight; int nRealSel = m_nOverList + m_sbScrollBar.GetScrollPos(); if( nRealSel >= 0 )//&& nRealSel < m_sbScrollBar.GetCurItemCount() ) { if (nRealSel >= m_vecCommandList.size()) return WMSG_FAIL; m_nSelectList = nRealSel; return WMSG_COMMAND; } return WMSG_SUCCESS; } } if( m_bScrollBar ) { if( m_sbScrollBar.MouseMessage( pMsg ) != WMSG_FAIL ) return WMSG_SUCCESS; } } break; case WM_LBUTTONDBLCLK: { if( m_bScrollBar ) { if( m_sbScrollBar.MouseMessage( pMsg ) != WMSG_FAIL ) return WMSG_SUCCESS; } } break; case WM_MOUSEWHEEL: { if( m_bScrollBar ) { if( m_sbScrollBar.MouseMessage( pMsg ) != WMSG_FAIL ) return WMSG_SUCCESS; } } break; } return WMSG_FAIL; }
int Positioner::GetAbsHeight(double f){ return GetAbsPosY(f); }