// MyCell - version 1.0
// Written by Yanxueming <yanxm2003@hotmail.com>
// Copyright (C) 2006-2006
// All rights reserved.
//
// The code and information is provided "as-is" without
// warranty of any kind, either expressed or implied.
#pragma once
#ifndef WM_MOUSEWHEEL
#define WM_MOUSEWHEEL 0x020A
#endif
namespace mycell{
class Grid;
class ScrollImp
{
Grid* pGrid_;
public:
ScrollImp(Grid* p):pGrid_(p)
{}
BEGIN_MSG_MAP(ScrollImp)
MESSAGE_HANDLER(WM_VSCROLL,OnVScroll)
MESSAGE_HANDLER(WM_HSCROLL,OnHScroll)
MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel)
END_MSG_MAP()
public:
//void ResetScrollBars(BOOL bResetHCrollBar,BOOL bResetVScrollBar);
//int GetScrollPos32(HWND hWnd,int nBar, BOOL bGetTrackPos = FALSE )
//{
// SCROLLINFO si;
// si.cbSize = sizeof(SCROLLINFO);
// if (bGetTrackPos){
// si.fMask = SIF_TRACKPOS;
// if (::GetScrollInfo(hWnd,nBar, &si))
// return si.nTrackPos;
// }else {
// si.fMask = SIF_POS;
// if (::GetScrollInfo(hWnd,nBar, &si))
// return si.nPos;
// }
// return 0;
//}
//BOOL SetScrollPos32(HWND hWnd,int nBar, int nPos, BOOL bRedraw = TRUE )
//{
// SCROLLINFO si;
// si.cbSize = sizeof(SCROLLINFO);
// si.fMask = SIF_POS;
// si.nPos = nPos;
// return ::SetScrollInfo(hWnd,nBar, &si, bRedraw);
//}
private:
LRESULT OnVScroll(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnHScroll(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnMouseWheel(UINT,WPARAM,LPARAM,BOOL&);
};
}//namespace mycell