A7Mの日記: 覚え書き:TListViewのカラム幅を「うまく」自動的に調整する
日記 by
A7M
TListViewのカラム幅の調整はColumnプロパティのAutoSizeをtrueにしてやれば、ある程度は調整するが、縦スクロールバーのサイズを考慮していないようなので、不要な横スクロールバーが表示されてしまう場合がある。
そこで、縦スクロールバーのサイズを取得し、その値を考慮して半ば無理矢理カラム幅を調整するほうが、不要な横スクロールバーが表示されることがない(はず)。
縦スクロールバーの幅はGetSystemMetricsで取得できる。
void __fastcall TForm1::FormResize(TObject *Sender)
{
// スクロールバーの余裕幅を4ピクセルほどとっておく
int BarSize = GetSystemMetrics(SM_CXVSCROLL) + 4;
int ColCount = ListView1->Columns->Count;
int ListWidth = ListView1->Width - BarSize;
int ColWidth = ListWidth / ColCount;
for (int i = 0; i < ColCount; i++) {
ListView1->Column[i]->Width = ColWidth;
}
}
GetSystemMetricsは、その他様々な表示要素(ウィンドウサイズなど)の値を取得できるので、とっても(゚Д゚)ウマー
そこで、縦スクロールバーのサイズを取得し、その値を考慮して半ば無理矢理カラム幅を調整するほうが、不要な横スクロールバーが表示されることがない(はず)。
縦スクロールバーの幅はGetSystemMetricsで取得できる。
void __fastcall TForm1::FormResize(TObject *Sender)
{
// スクロールバーの余裕幅を4ピクセルほどとっておく
int BarSize = GetSystemMetrics(SM_CXVSCROLL) + 4;
int ColCount = ListView1->Columns->Count;
int ListWidth = ListView1->Width - BarSize;
int ColWidth = ListWidth / ColCount;
for (int i = 0; i < ColCount; i++) {
ListView1->Column[i]->Width = ColWidth;
}
}
GetSystemMetricsは、その他様々な表示要素(ウィンドウサイズなど)の値を取得できるので、とっても(゚Д゚)ウマー
覚え書き:TListViewのカラム幅を「うまく」自動的に調整する More ログイン