コード例 #1
16
/*************************************************
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);
}
コード例 #2
0
ファイル: ListCtrlEx.cpp プロジェクト: mimura1133/mm_STEP_M
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);
}
コード例 #3
0
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;
}
コード例 #4
0
ファイル: GraphEditor.cpp プロジェクト: WhoIsLudwig/nesicide
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);
}
コード例 #5
0
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;
}
コード例 #6
0
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);
}
コード例 #7
0
ファイル: Bmview.cpp プロジェクト: Stas777/Exsylor
//---------------------------------------------------------------------
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);
  }
}
コード例 #8
0
	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);
	}
コード例 #9
0
ファイル: PdfPreview.cpp プロジェクト: kzmkv/SumatraPDF
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;
    }
}
コード例 #10
0
ファイル: HexEdit.cpp プロジェクト: Garfield-Chen/openlibs
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);
}
コード例 #11
0
	//******************************************************************************************
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;
}
コード例 #12
0
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);
}
コード例 #13
0
ファイル: MainWindow.cpp プロジェクト: vdrive/TrapperKeeper
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);
}
コード例 #14
0
ファイル: codelist.cpp プロジェクト: csersoft/hard86
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;
}
コード例 #15
0
ファイル: hexgrid.cpp プロジェクト: csersoft/hard86
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;
}
コード例 #16
0
ファイル: OptionTreeList.cpp プロジェクト: ngphloc/agmagic
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);
}
コード例 #17
0
ファイル: Bmview.cpp プロジェクト: Stas777/Exsylor
//------------------------------------------------------------
// 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));
 }
}
コード例 #18
0
ファイル: ScrollHelper.cpp プロジェクト: gigamage/psf
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;
}
コード例 #19
0
ファイル: ScrollDialog.cpp プロジェクト: moodboom/Reusable
//-------------------------------------------------------------------//
// 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);
}
コード例 #20
0
ファイル: HexEdit.cpp プロジェクト: Garfield-Chen/openlibs
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();
	}
}
コード例 #21
0
ファイル: browser_cover.cpp プロジェクト: boh1996/silverjuke
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*/);
		}
	}
}
コード例 #22
0
ファイル: View.cpp プロジェクト: quinsmpang/Tools
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);
}
コード例 #23
0
ファイル: PdfPreview.cpp プロジェクト: kzmkv/SumatraPDF
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);
    }
}
コード例 #24
0
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;
}
コード例 #25
0
ファイル: browser_cover.cpp プロジェクト: boh1996/silverjuke
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;
}
コード例 #26
0
ファイル: EPropWnd.cpp プロジェクト: neil-yi/ffsource
//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 );
}
コード例 #27
0
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);
    }
}
コード例 #28
0
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;
}
コード例 #29
0
ファイル: browser_cover.cpp プロジェクト: boh1996/silverjuke
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();
		}
	}
}
コード例 #30
0
ファイル: ScrollBars.cpp プロジェクト: the-reverend/Win32xx
/*============================================================================*/
	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;
}