スクロールバー CScrollBar

SBS_HORZで水平スクロールバー

CScrollBar bar;
・・・

int Test::OnCreate(LPCREATESTRUCT lpCreateStruct) 
 bar.Create( SBS_HORZ , RECT( スクロールバーの座標 ) , this , <ユニークな数値> );
 bar.SetScrollRange(0,255);	// 幅設定
 bar.ShowWindow( SW_SHOW );
・・・
}
・・・

#define SCROLLPIXEL 4
void Test::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
 // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
 
 // bar
 if ( pScrollBar == &bar ){
  int nMax,nMin
  switch( nSBCode ){
  case SB_LEFT:   // 左端へスクロール。
   bar.GetScrollRange( &nMin , &nMax );
   bar.SetScrollPos( nMin );
   break;
  case SB_LINELEFT:  // 左へスクロール。
   bar.SetScrollPos( max( 0 , bar.GetScrollPos() - SCROLLPIXEL ));
   //redrawGraph();
   break;
  case SB_LINERIGHT:  // 右へスクロール。
   bar.SetScrollPos( bar.GetScrollPos() + SCROLLPIXEL );
   //redrawGraph();
   break;
  case SB_PAGELEFT:  // 1 ページ左へスクロール。
   bar.SetScrollPos( max( 0 , bar.GetScrollPos() - ( SCROLLPIXEL * 4 ) /*nPage*/ ));
   //redrawGraph();
   break;
  case SB_PAGERIGHT:  // 1 ページ右へスクロール。
   bar.SetScrollPos( bar.GetScrollPos() + ( SCROLLPIXEL * 4 ) /*nPage*/ );
   //redrawGraph();
   break;
  case SB_RIGHT:   // 右端へスクロール。
   bar.GetScrollRange( &nMin , &nMax );
   bar.SetScrollPos( nMax );
   break;
  case SB_THUMBPOSITION: // 絶対位置へスクロール。現在位置は引数 nPos で指定されます。
   bar.SetScrollPos( nPos );
   break;
  case SB_THUMBTRACK:  // スクロール ボックスを指定位置へドラッグします。現在位置は引数 nPos で指定されます。 
   bar.SetScrollPos( nPos );
   break;
  case SB_ENDSCROLL:  // スクロール終了。
   break;
  }
 }

 CWnd::OnHScroll(nSBCode, nPos, pScrollBar);
}