我在报告模式下有一个列表控件。
我用数据填充此列表控件,然后使用{{1}}自动调整所有列的大小。根据数据,列表控件可能会以水平滚动条结束。
到目前为止一切顺利。但是现在我想获得列表控件应该具有的最小宽度,因此不需要水平滚动条。知道这个大小我可以调整列表控件的大小,以摆脱水平滚动条。
有什么想法吗?
答案 0 :(得分:2)
由于您已经知道所需的宽度,因此您可以使用该信息并让系统为您计算相应的窗口宽度。可以使用以下任一API:AdjustWindowRect或AdjustWindowRectEx。高度可以忽略不计。
int requiredWidth = 0;
for ( int index = 0; index < itemCount; ++index ) {
// calculate item width
requiredWidth += itemWidth;
}
RECT r = { 0, 0, requiredWidth, 1 };
DWORD style = (DWORD)::GetWindowLongPtr( hList, GWL_STYLE );
DWORD styleEx = (DWORD)::GetWindowLongPtr( hList, GWL_EXSTYLE );
::AdjustWindowRectEx( &r, style, FALSE, styleEx );
int windowWidth = r.right - r.left;
答案 1 :(得分:-1)
懒惰的解决方案是增加宽度,直到滚动条消失。
ng-class