/************************************************* Function: OnMouseWheel Desc: Input: Return: SUCCESS 成功 FAIL 失败 **************************************************/ BOOL CDialogSetting::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { // TODO: Add your message handler code here and/or call default if(zDelta < 0) { OnVScroll(SB_LINEDOWN, GetScrollPos(SB_VERT), GetScrollBarCtrl(SB_VERT)); } else if (zDelta > 0) { OnVScroll(SB_LINEUP, GetScrollPos(SB_VERT), GetScrollBarCtrl(SB_VERT)); } return CDialog::OnMouseWheel(nFlags, zDelta, pt); }
void CListCtrlEx::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { if (m_bActive) { const UINT ENHANCEDKEY = 0x0100; const UINT PAGEUPKEY = 0x21; const UINT PAGEDNKEY = 0x22; // Handle enhanced keys since OnChar doesn't seem to get // them... if (nFlags & ENHANCEDKEY) { // Don't update window if paging up or down. It looks // terrible! switch (nChar) { case PAGEUPKEY: OnVScroll(SB_PAGEUP, 0, 0); return; case PAGEDNKEY: OnVScroll(SB_PAGEDOWN, 0, 0); return; } } } CListCtrl::OnKeyDown(nChar, nRepCnt, nFlags); }
BOOL CSampleDialogScrollHelper::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { if (0 == m_pWnd) return FALSE; int scroll_min = 0, scroll_max = 0; m_pWnd->GetScrollRange(SB_VERT, &scroll_min, &scroll_max); if (scroll_min == scroll_max) return FALSE; int num_scroll_increments = abs(zDelta) / WHEEL_DELTA; int num_scroll_lines_per_increment = 0; ::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &num_scroll_lines_per_increment, 0); if (num_scroll_lines_per_increment == WHEEL_PAGESCROLL) { OnVScroll(zDelta > 0 ? SB_PAGEUP : SB_PAGEDOWN, 0, 0); return TRUE; } int num_scroll_lines = num_scroll_increments * num_scroll_lines_per_increment; num_scroll_lines = max(num_scroll_lines / 3, 1); int i; for (i = 0; i < num_scroll_lines; i++) OnVScroll(zDelta > 0 ? SB_LINEUP : SB_LINEDOWN, 0, 0); return TRUE; }
BOOL CArpeggioGraphEditor::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { if (zDelta < 0) OnVScroll(SB_LINEDOWN, 0, m_pScrollBar); else OnVScroll(SB_LINEUP, 0, m_pScrollBar); return CWnd::OnMouseWheel(nFlags, zDelta, pt); }
BOOL CHexEdit::OnMouseWheel( UINT nFlags, short zDelta, CPoint pt) { if(zDelta <0) OnVScroll(SB_LINEDOWN,m_topindex / m_bpr,0); else OnVScroll(SB_LINEUP,m_topindex / m_bpr,0); // new add return TRUE; }
void CImageView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default if (!m_pImage || m_pImage->empty()) { return; } switch(nChar) { case VK_HOME: OnVScroll(SB_TOP,0,NULL); OnHScroll(SB_LEFT,0,NULL); break; case VK_END: OnVScroll(SB_BOTTOM,0,NULL); OnHScroll(SB_RIGHT,0,NULL); break; case VK_UP: OnVScroll(SB_LINEUP,0,NULL); break; case VK_DOWN: OnVScroll(SB_LINEDOWN,0,NULL); break; case VK_LEFT: OnHScroll(SB_LINELEFT,0,NULL); break; case VK_RIGHT: OnHScroll(SB_LINERIGHT,0,NULL); break; case VK_SPACE: if (m_pMVSDoc->m_imgHandled.empty()) { return; } if (!m_bShowHandled) { m_pImage = &m_pMVSDoc->m_imgHandled; m_bShowHandled = TRUE; } else { m_pImage = &m_pMVSDoc->m_image; m_bShowHandled = FALSE; } Invalidate(TRUE); break; default: break; } CScrollView::OnKeyDown(nChar, nRepCnt, nFlags); }
//--------------------------------------------------------------------- void CBMRegEditView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { switch (nChar) { case VK_TAB: NextView(); break; case VK_HOME: OnVScroll(SB_TOP, 0, GetScrollBarCtrl(SB_VERT)); break; case VK_END: OnVScroll(SB_BOTTOM, 0, GetScrollBarCtrl(SB_VERT)); break; case VK_UP: if (GetActReg()!=0) ChangeSelectionNextRow(FALSE); break; case VK_DOWN: if (GetActReg()<GetRowCount()-1) ChangeSelectionNextRow(TRUE); break; case VK_PRIOR: OnVScroll(SB_PAGEUP, 0, GetScrollBarCtrl(SB_VERT)); break; case VK_NEXT: OnVScroll(SB_PAGEDOWN,0, GetScrollBarCtrl(SB_VERT)); break; default: CScrollView::OnKeyDown(nChar, nRepCnt, nFlags); } }
BOOL CRecognitionTextView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { // TODO: 在此添加消息处理程序代码和/或调用默认值 if (zDelta < 0) { OnVScroll(SB_LINEDOWN, 0, &m_VScrollBar); } else if (zDelta > 0) { OnVScroll(SB_LINEUP, 0, &m_VScrollBar); } return CScrollView::OnMouseWheel(nFlags, zDelta, pt); }
static LRESULT OnKeydown(HWND hwnd, WPARAM key) { switch (key) { case VK_DOWN: case VK_RIGHT: case VK_NEXT: return OnVScroll(hwnd, SB_PAGEDOWN); case VK_UP: case VK_LEFT: case VK_PRIOR: return OnVScroll(hwnd, SB_PAGEUP); case VK_HOME: return OnVScroll(hwnd, SB_TOP); case VK_END: return OnVScroll(hwnd, SB_BOTTOM); default: return 0; } }
void CHexEdit::Move(int x, int y) { switch(m_currentMode) { case EDIT_NONE: return; case EDIT_HIGH: if(x != 0) m_currentMode = EDIT_LOW; if(x == -1) m_currentAddress --; m_currentAddress += y* m_bpr; break; case EDIT_LOW: if(x != 0) m_currentMode = EDIT_HIGH; if(x == 1) m_currentAddress++; m_currentAddress += y* m_bpr; break; case EDIT_ASCII: { m_currentAddress += x; m_currentAddress += y*m_bpr; } break; } if(m_currentAddress < 0) m_currentAddress = 0; if(m_currentAddress >= m_length) { m_currentAddress -= x; m_currentAddress -= y*m_bpr; } m_bNoAddressChange = TRUE; if(m_currentAddress < m_topindex) { OnVScroll(SB_LINEUP, 0, NULL); } if(m_currentAddress >= m_topindex + m_lpp*m_bpr) { OnVScroll(SB_LINEDOWN, 0, NULL); } m_bNoAddressChange = FALSE; //ScrollIntoView(m_currentAddress); RepositionCaret(m_currentAddress); }
//****************************************************************************************** BOOL CCxNDArrayDimGrid::OnMouseWheel(UINT /*nFlags*/, short zDelta, CPoint /*pt*/) { #ifndef _BCGPGRID_STANDALONE if (CBCGPPopupMenu::GetActiveMenu () != NULL) { return TRUE; } #endif if (m_nDraggedColumn >= 0 || m_bTracking || m_bSelecting) { return FALSE; } if (m_nVertScrollTotal <= m_nVertScrollPage) { return FALSE; } if ((m_fScrollRemainder > 0) != (zDelta > 0)) { m_fScrollRemainder = 0; } UINT nLinesToScrollUserSetting; if (!::SystemParametersInfo (SPI_GETWHEELSCROLLLINES, 0, &nLinesToScrollUserSetting, 0)) { nLinesToScrollUserSetting = 1; } if(nLinesToScrollUserSetting == WHEEL_PAGESCROLL) // scroll one page at a time { OnVScroll (zDelta < 0 ? SB_PAGEDOWN : SB_PAGEUP, 0, NULL); return TRUE; } float fTotalLinesToScroll = ((float)zDelta / WHEEL_DELTA) * nLinesToScrollUserSetting + m_fScrollRemainder; int nSteps = abs((int)fTotalLinesToScroll); m_fScrollRemainder = fTotalLinesToScroll - (int)fTotalLinesToScroll; for (int i = 0; i < nSteps; i++) { OnVScroll (zDelta < 0 ? SB_LINEDOWN : SB_LINEUP, 0, NULL); } return TRUE; }
BOOL CBirchCtrl::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { // zDelta greater than 0, means rotating away from the user, that is, scrolling up OnVScroll( ( zDelta > 0 )? SB_LINEUP:SB_LINEDOWN, 0, NULL ); return CWnd::OnMouseWheel(nFlags, zDelta, pt); }
BOOL CMainWindow::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { int new_pos=(int)m_vscroll_bar.GetScrollPos()-(zDelta>>1); OnVScroll(SB_THUMBPOSITION,new_pos,&m_vscroll_bar); return TRUE;//CWnd::OnMouseWheel(nFlags, zDelta, pt); }
LRESULT CALLBACK CodeList::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg){ case WM_CREATE: OnCreate(hWnd, uMsg, wParam, lParam); break; case WM_PAINT: OnPaint(hWnd, uMsg, wParam, lParam); break; case WM_SETFONT: OnSetFont(hWnd, uMsg, wParam, lParam); break; case WM_LBUTTONDOWN: OnLButtonDown(hWnd, uMsg, wParam, lParam); break; case WM_VSCROLL: OnVScroll(hWnd, uMsg, wParam, lParam); break; case WM_ENABLE: OnEnable(hWnd, uMsg, wParam, lParam); break; default: return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; }
LRESULT CALLBACK HexGrid::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg){ case WM_CREATE: OnCreate(hWnd, uMsg, wParam, lParam); break; case WM_PAINT: OnPaint(hWnd, uMsg, wParam, lParam); break; case WM_SETFONT: OnSetFont(hWnd, uMsg, wParam, lParam); break; case WM_SIZE: OnSize(hWnd, uMsg, wParam, lParam); break; case WM_LBUTTONDOWN: OnLButtonDown(hWnd, uMsg, wParam, lParam); break; case WM_LBUTTONUP: OnLButtonUp(hWnd, uMsg, wParam, lParam); break; case WM_MOUSEMOVE: OnMouseMove(hWnd, uMsg, wParam, lParam); break; case WM_VSCROLL: OnVScroll(hWnd, uMsg, wParam, lParam); break; default: return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; }
BOOL COptionTreeList::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { // Declare variables SCROLLINFO si; CRect rcClient; // Setup scrollbar info ZeroMemory(&si, sizeof(SCROLLINFO)); si.cbSize = sizeof(SCROLLINFO); si.fMask = SIF_RANGE; // Get scrollbar info GetScrollInfo(SB_VERT, &si); // Get client rectnagle GetClientRect(rcClient); // Validate if (si.nMax - si.nMin < rcClient.Height()) { return TRUE; } // Set focus SetFocus(); // Vertical scroll OnVScroll(zDelta < 0 ? SB_LINEDOWN : SB_LINEUP, 0, NULL); return TRUE; //return CWnd::OnMouseWheel(nFlags, zDelta, pt); }
//------------------------------------------------------------ // Overrides of CView and CBrView void CBMView::OnUpdate(CView*, LPARAM lHint, CObject* pHint) { if (pHint!=NULL && theApp.m_nActiveFrame!=DBVIEW) return; if ( pHint != NULL && pHint->IsKindOf(RUNTIME_CLASS(CScriptDoc))) return; UpdateScrollSizes(); Invalidate(); if (theApp.m_nActiveFrame==DBVIEW) { if (theApp.CurrentTask&NEW_SAMPLE) OnVScroll(SB_BOTTOM,0,GetScrollBarCtrl(SB_VERT)); } }
BOOL CScrollHelper::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { if ( m_attachWnd == NULL ) return FALSE; // Don't do anything if the vertical scrollbar is not enabled. int scrollMin = 0, scrollMax = 0; m_attachWnd->GetScrollRange(SB_VERT, &scrollMin, &scrollMax); if ( scrollMin == scrollMax ) return FALSE; // Compute the number of scrolling increments requested. int numScrollIncrements = abs(zDelta) / WHEEL_DELTA; // Each scrolling increment corresponds to a certain number of // scroll lines (one scroll line is like a SB_LINEUP or SB_LINEDOWN). // We need to query the system parameters for this value. int numScrollLinesPerIncrement = 0; ::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &numScrollLinesPerIncrement, 0); // Check if a page scroll was requested. if ( numScrollLinesPerIncrement == WHEEL_PAGESCROLL ) { // Call the vscroll message handler to do the work. OnVScroll(zDelta > 0 ? SB_PAGEUP : SB_PAGEDOWN, 0, NULL); return TRUE; } // Compute total number of lines to scroll. int numScrollLines = numScrollIncrements * numScrollLinesPerIncrement; // Adjust numScrollLines to slow down the scrolling a bit more. numScrollLines = max(numScrollLines/3, 1); // Do the scrolling. for(int i = 0; i < numScrollLines; ++i) { // Call the vscroll message handler to do the work. OnVScroll(zDelta > 0 ? SB_LINEUP : SB_LINEDOWN, 0, NULL); } return TRUE; }
//-------------------------------------------------------------------// // OnMouseMove() // //-------------------------------------------------------------------// // For "drag-scrolling". //-------------------------------------------------------------------// void CScrollDialog::OnMouseMove(UINT nFlags, CPoint point) { if ( m_bDragging && nFlags & MK_LBUTTON ) { // MDM 3/15/2003 12:00:42 AM // We want to scroll if needed. OnVScroll( SB_THUMBTRACK, m_ptDragFrom.y - point.y, 0 ); } inherited::OnMouseMove(nFlags, point); }
void CHexEdit::OnMouseMove(UINT nFlags, CPoint point) { if(!m_pData) return; if(nFlags & MK_LBUTTON && m_selStart != 0xffffffff) { CRect rc; GetClientRect(&rc); if(!rc.PtInRect(point)) { if(point.y < 0) { OnVScroll(SB_LINEUP, 0, NULL); point.y = 0; } else if(point.y > rc.Height()) { OnVScroll(SB_LINEDOWN, 0, NULL); point.y = rc.Height() -1; } } // // we are selecting // int seo = m_selEnd; CPoint pt = CalcPos(point.x, point.y); if(pt.x > -1) { m_selEnd = m_currentAddress; if(m_currentMode == EDIT_HIGH || m_currentMode == EDIT_LOW) m_selEnd++; } if(IsSelected()) DestroyCaret(); if(seo != m_selEnd) RedrawWindow(); } }
void SjCoverBrowser::OnMouseWheel(wxMouseEvent& event, bool scrollVert) { if( scrollVert ) { // add multiple small rotations (smaller than the delta to take action) to bigger ones static SjWheelHelper s_coverBrowserWheelHelper; long rotateCovers, dir; s_coverBrowserWheelHelper.PushRotationNPopAction(event, rotateCovers, dir); if( rotateCovers != 0 ) { OnVScroll(IDT_WORKSPACE_V_SCROLL, m_applRowIndex + rotateCovers*dir*-1, TRUE/*redraw*/); } } }
LRESULT CView::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DROPFILES: return OnDropFiles(wParam, lParam); case WM_HSCROLL: return OnHScroll(wParam, lParam); case WM_VSCROLL: return OnVScroll(wParam, lParam); case WM_WINDOWPOSCHANGED: return OnWindowPosChanged(wParam, lParam); } // Pass unhandled messages on for default processing return WndProcDefault(uMsg, wParam, lParam); }
static LRESULT CALLBACK PreviewWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_PAINT: return OnPaint(hwnd); case WM_VSCROLL: return OnVScroll(hwnd, wParam); case WM_KEYDOWN: return OnKeydown(hwnd, wParam); case WM_LBUTTONDOWN: SetFocus(hwnd); return 0; case WM_MOUSEWHEEL: return OnVScroll(hwnd, GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? SB_LINEUP : SB_LINEDOWN); case WM_DESTROY: return OnDestroy(hwnd); case UWM_PAINT_AGAIN: InvalidateRect(hwnd, NULL, TRUE); UpdateWindow(hwnd); return 0; default: return DefWindowProc(hwnd, message, wParam, lParam); } }
BOOL CNewTexWnd::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { OnVScroll((zDelta >= 0) ? SB_LINEUP : SB_LINEDOWN, 0, NULL); OnVScroll((zDelta >= 0) ? SB_LINEUP : SB_LINEDOWN, 0, NULL); OnVScroll((zDelta >= 0) ? SB_LINEUP : SB_LINEDOWN, 0, NULL); OnVScroll((zDelta >= 0) ? SB_LINEUP : SB_LINEDOWN, 0, NULL); OnVScroll((zDelta >= 0) ? SB_LINEUP : SB_LINEDOWN, 0, NULL); OnVScroll((zDelta >= 0) ? SB_LINEUP : SB_LINEDOWN, 0, NULL); return TRUE; }
bool SjCoverBrowser::GotoUrl(const wxString& url) { bool ret = FALSE; long colIndex; SjCol* col = g_mainFrame->m_columnMixer.GetMaskedCol(url, colIndex); if( col ) { delete col; // check index col = NULL; if( colIndex >= 0 ) { // goto column m_scrollY = 0; OnVScroll(IDT_WORKSPACE_V_SCROLL, colIndex/m_coversXCount, FALSE/*redraw*/); SetVScrollInfo(); // select the correct row g_mainFrame->m_columnMixer.SelectAll(FALSE); for( colIndex = 0; colIndex < m_allocatedCoverCount; colIndex++ ) { col = m_allocatedCover[colIndex]; if( col ) { for( int rowIndex = 0; rowIndex < col->m_rowCount; rowIndex++ ) { SjRow* row = col->m_rows[rowIndex]; if( row->m_url == url ) { if( row->IsSelectable()==2 ) { row->Select(TRUE); } ret = TRUE; // URL found! } } } } m_window->Refresh(); m_window->Update(); } } return ret; }
//Thanks to Damian Trebilco for helping out on the mouse scrolling BOOL EPropWnd::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { UINT nCode = 0; if( zDelta < 0 ) { nCode = SB_LINEDOWN; } else { nCode = SB_LINEUP; } OnVScroll( nCode , 0 , NULL ); return CWnd::OnMouseWheel( nFlags , zDelta , pt ); }
void PropertyTree::EnsureVisible(PropertyTreeItem* pItem) { if (!pItem) return; // item is not scroll visible (expand all parents) if (!IsItemVisible(pItem)) { PropertyTreeItem* pParent; pParent = pItem->GetParent(); while (pParent) { pParent->Expand(); pParent = pParent->GetParent(); } UpdatedItems(); UpdateWindow(); } CRect rc; GetClientRect(rc); rc.OffsetRect(0, m_ScrollPos); rc.bottom -= pItem->GetHeight(); CPoint pt; pt = pItem->GetLocation(); if (!rc.PtInRect(pt)) { LONG oy; //if (pt.y < rc.top) oy = pt.y; //else // oy = pt.y - rc.Height() + pItem->GetHeight(); OnVScroll(SB_THUMBTRACK, oy, NULL); } }
BOOL CPropTreeList::OnMouseWheel(UINT, short zDelta, CPoint) { SCROLLINFO si; ZeroMemory(&si, sizeof(SCROLLINFO)); si.cbSize = sizeof(SCROLLINFO); si.fMask = SIF_RANGE; GetScrollInfo(SB_VERT, &si); CRect rc; GetClientRect(rc); if (si.nMax - si.nMin < rc.Height()) return TRUE; SetFocus(); OnVScroll(zDelta < 0 ? SB_LINEDOWN : SB_LINEUP, 0, NULL); return TRUE; }
void SjCoverBrowser::GotoPos(const wxString& guid, long viewOffset) { m_preservedVisible = guid; long colIndex; SjCol* col = g_mainFrame->m_columnMixer.GetMaskedCol(guid, colIndex); if( col ) { delete col; // check index col = NULL; if( colIndex >= 0 ) { // goto column m_scrollY = 0; OnVScroll(IDT_WORKSPACE_V_SCROLL, colIndex/m_coversXCount, FALSE/*redraw*/); SetVScrollInfo(); } } }
/*============================================================================*/ LRESULT WScrollBars:: ScrollProc(UINT uMsg, WPARAM wParam, LPARAM lParam) /* Process the system message uMsg from the view's message loop. All scroll request messages pass through this procedure. Return 0 if the message was handled, -1 otherwise. *-----------------------------------------------------------------------------*/ { switch (uMsg) { case WM_VSCROLL: // received when the v-scrollbar is clicked if (OnVScroll(wParam, lParam) == 0) return 0; break; case WM_HSCROLL: // received when the v-scrollbar is clicked if (OnHScroll(wParam, lParam) == 0) return 0; break; case WM_KEYDOWN: // received when a key is pressed if (OnKeyScroll(wParam, lParam) == 0) return 0; break; case WM_MOUSEWHEEL: // rotation detected if (OnMouseWheel(wParam, lParam) == 0) return 0; break; } // message was not one for scrolling: notify caller no processing // took place return -1; }