何故か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