何故かVisual Studioのリソースエディタでは、ダイアログに張り付けたスクロールバー自身に、そのようなイベントがありません。
ちょっと調べたら、親のウインドウにWM_VSCROLLとWM_HSCROLLのイベントがあがるようです。
よって、それぞれのイベントハンドラーで対応の処理を書けばよいです。
さらに面倒なのは、スクロールバーの設定です。全体のサイズと位置ははSetWindowPosを使って設定します。
たとえば、画像表示のインターフェースで、表示している画像は全体の何割を占めているかを示すには、SCROLLINFO 構造体を使って、CScrollBar::SetScrollInfoを通して、設定できます。以下は横スクロールバーを設定するソースコードの例です。
void CMyView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// Set SCROLLINFO for the scroll bar. m_ScrollBar is of type
// CScrollBar class, and it is a member variable in CMyView class.
SCROLLINFO info;
info.cbSize = sizeof(SCROLLINFO);
info.fMask = SIF_ALL;
info.nMin = 0;
info.nMax = width_of_image;
info.nPage = width_of_display_area;
info.nPos = 0;
info.nTrackPos = 0;
m_ScrollBar.SetScrollInfo(&info);
}
No comments:
Post a Comment