2016-11-07 12 views
1

古いMFCSharpGridコントロールをCCheckListBoxで置き換える必要がありました。MFC CCheckListBoxの垂直スクロールバーは更新されません

さて、リストボックスの垂直スクロールバーを表示した後、リストのクライアント領域に正しいイベントを(ラインアップ/ダウン、ページアップ/ダウン)を送信するようで、それがマウスホイールを可能にスクロールはスクロールバーを隠した状態では利用できません。

スクロールバー自体は更新されません。つまり、スクロールバーからスクロールバーにスクロールしても、親領域がスクロールしていなくても、サムのサイズはページサイズに比例しません。サイズ。

リストボックスは次のように多かれ少なかれ作成されます。

m_grid.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED | LBS_NOTIFY, m_gridRect, this, IDC_GRID1); 

文字列を反復的に追加され、その後、私たちはこのようなスクロールバーの表示要求:設定しようとし

m_grid.ShowScrollBar(SB_VERT, TRUE); 

をmin/max/page-sizeのSCROLLINFOは位置更新の問題を解決しませんでした。

私はここで何が欠けていますか?

答えて

1

ShowScrollBarを手動で使用する必要はありません。それを削除して、WS_VSCROLLスタイルのリストボックスを作成します。

m_grid.Create(WS_VSCROLL | LBS_HASSTRINGS | LBS_OWNERDRAWFIXED | LBS_NOTIFY, m_gridRect, this, IDC_GRID1); 

このようにして、内容がコントロールの長さを超えると、自動的に垂直スクロールバーが表示されます。

+0

@ arcraig5075 - それは正解でした、ありがとう! –

関連する問題