CListCtrl
列の幅を自動的にサイズ変更するにはどうすればよいですか? 通常、リスト内の項目が長くなりすぎると、バックエンドが表示されなくなり、ユーザーは対応する列の幅を手動でサイズ変更する必要があります。コードでこれを行う方法はありますか?
13304 次
3 に答える
15
列のサイズを自動的に変更するのは簡単です。
for(int i = 0;i < pListCtrl->GetHeaderCtrl()->GetItemCount();++i)
pListCtrl->SetColumnWidth(i,LVSCW_AUTOSIZE_USEHEADER);
これにより、列が最適化されます。
于 2010-04-09T19:45:53.637 に答える
1
「スクロールなし」オプションをオンにしていますか?デフォルト (「スクロールなし」オプションがオフ) では、項目が長くなりすぎるとスクロール バーが表示されます。
于 2010-04-09T10:19:27.917 に答える
1
レポート モードのリスト コントロールのことでしょうか。残念ながら、列のサイズを自動的に変更する方法はありません。できること (私がいくつかの場所で行っていること) は、アイテムを入力するときに列の幅を計算し、WM_SIZE を処理して列のサイズを変更することです。ただし、これによりユーザーが行った変更が失われるため、ユーザーがサイズを変更しなかった場合に変更を行ったかどうかを追跡するなど、より優れたアルゴリズムが必要になる場合があります。UX の観点からはあまり良くありません。UI の残りの部分のコンテキストで動作が意味をなす限られた状況でのみ使用します。
于 2010-04-09T13:09:42.247 に答える