原文链接: http://www.cnblogs.com/sephil/archive/2011/04/03/2004384.html

今天用VC写工具的时候用到CListView,并且ListCtrl的第一列需要自动拉伸,以占满空白区域

Delphi做这个设置是很容易的,只要将Column的AutoSize设置为True就可以了

不过VC/SDK的AutoSize其实是根据Item的文本长度来自动设置Column Width,跟我的要求不符,只好自己实现了

其实很简单,就是觉得麻烦...

void CMyView::AdjustColumnWidth()
{
RECT rc;
CListCtrl& list = GetListCtrl();
CHeaderCtrl* pHeader = list.GetHeaderCtrl();
if (!pHeader)
return;

// 客户区域
list.GetClientRect(&rc);
int nColCount = pHeader->GetItemCount();
// 去掉其他列占用的宽度
for (int i = 1; i < nColCount; i++)
{
rc.right -= list.GetColumnWidth(i);
}

// 去掉滚动条占用的宽度
SCROLLBARINFO sbi;
if (list.GetScrollBarInfo(OBJID_VSCROLL, &sbi))
{
rc.right -= sbi.rcScrollBar.right - sbi.rcScrollBar.left;
}

// 修改列宽
list.SetColumnWidth(0, rc.right > rc.left ? rc.right - rc.left : LVSCW_AUTOSIZE_USEHEADER);
}

使用方法:在OnSize消息中调用一下AdjustColumnWidth就好了

void CMyView::OnSize(UINT nType, int cx, int cy)
{
CListView::OnSize(nType, cx, cy);

if (GetListCtrl().GetSafeHwnd())
  AdjustColumnWidth();
}

VC CListCtrl 第一列列宽自适应相关推荐

  1. el-table某列的列宽自适应,其他列按比例分配。

    情景一:例如首列按照内容自适应展开,其余列有各自的比例. 注意点: 给需要自适应展开的列加 :width="flexColumnWidth"计算方法 就可以自适应展开 需要给余下所 ...

  2. el-table列宽自适应;el-table表格的列根据内容自动撑满;el-table内容换行问题;

    原文链接 重点就一个方法 :width="flexColumnWidth('date',tableData)" 第一个参数是这个列的字段 第二个参数是这个表格的数据 只需要给对应的 ...

  3. elementui表格宽度适应内容_elementui表格中的列怎么实现自适应列宽

    elementui表格中的列怎么实现自适应列宽 发布时间:2020-12-28 14:58:04 来源:亿速云 阅读:53 作者:Leah 这期内容当中小编将会给大家带来有关elementui表格中的 ...

  4. 左列定宽,右列自适应

    利用float+margin HTML代码 <body> <div id="left">左列定宽</div> <div id=" ...

  5. 关于某题左列定宽右列宽度自适应布局的学习

    今天群里有人做题发了一道题,由于最近在学习flex布局,就不禁研究了起来... 题目如下: 已知HTML结构如下,以下哪些CSS可以实现左列定宽(100px)右列宽度自适应的布局? <div c ...

  6. bootstraptable列宽自适应内容_多列列表框行高和列宽的自适应调整

    LabVIEW:2015 在使用多列列表框(Multicolumn Listbox)时,有时不同列显示的内容长度不一致,为了显示更加美观,并节省界面显示空间,需要实现多列列表框的行高和列宽的自适应调整 ...

  7. Hutool工具类ExcelWriter导出excel列宽自适应问题解决

    前言: 因为项目中需要使用到ExcelWriter导出excel的列宽自适应,下面为解决该问题的经过,希望可以对遇到同样问题的开发者有所帮助. 一.通过查询Hutool官方的api文档发现autoSi ...

  8. CSS使用浮动属性和边距设计3行3列定宽的布局实例

    CSS使用浮动属性和边距设计3行3列定宽的布局 下面使用CSS的浮动属性和边距属性设计一个简单地3行3列并且是固定宽度的布局页面. 实例 设计步骤如下: 1. 制作3行3列定宽布局的XHTML部分.源 ...

  9. 成功解决pandas读取文件中不读取第一索引列

    成功解决pandas读取文件中不读取第一索引列 目录 解决问题 解决思路 解决方法 解决问题 解决pandas读取文件中不读取第一索引列 解决思路 pandas输出时会默认增加一列索引列 解决方法 添 ...

最新文章

  1. hadoop优化之操作系统优化
  2. 10.5 QQ 支持
  3. 《STL源码剖析》学习-- 1.9-- 可能令你困惑的C++语法2
  4. python linux 优化_Linux性能优化(一)
  5. 设置单元格填充方式_单元格的选择及设置单元格格式
  6. ACCESS中不支持left join解决方案
  7. 数据结构--队列Queue--链式队列、顺序队列
  8. 学3D建模,工作后薪资一般是多少
  9. vector与array之间转换,向量与数据之间转换
  10. matlab程序员得浪漫,程序员的浪漫:教你如何用MATLAB向女生表白
  11. 第四十章 Caché 变量大全 $ZREFERENCE 变量
  12. 3D动画效果照片墙demo
  13. 软件开发:API和SDK的区别与联系
  14. 微信发朋友圈/评论/点赞/搜索/购物车的测试点
  15. 类和对象常见题目详解
  16. 最短路及最短路计数(SPFA)
  17. Android制作粒子爆炸特效
  18. 经典残局html,微信欢乐斗地主3月残局1-100关全攻略 3月残局图文攻略大全
  19. python 对象转字典及序列化对象相关问题,__dict__!!!!必看,多坑
  20. 一元多项式相加(单链表c艹)

热门文章

  1. 开源云联盟耿航:中国开源软件的发展趋势
  2. MicroPython支持的开发板:高性能、低成本创客首选
  3. TechParty Mini.0
  4. 从头开始写框架(一):浅谈JS模块化发展
  5. TRUNC函数,ORA-01898 精度说明符过多
  6. UDP 编程 客服咨询回复
  7. android layout属性介绍
  8. ASP.NET安全问题--ASP.NET中的授权问题(前篇)
  9. 安装 Linux -Mplayer 播放器
  10. windows十大必禁服务