ListCtrl的列宽如何改变大小

MagicFuzzX 2013-05-12 05:02:52
这样的,我用CListCtrl的InsertColumn方法添加了几个列,但是长度都是写死的,但我需要改变对话框的大小,比如最大化,但是这个list的列长度是没有任何变化,甚至后面还会多出几个空的列,这种情况如何处理?
...全文
423 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-06-29
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
hankcs 2013-05-12
  • 打赏
  • 举报
回复
如果只是简单地想要CListctr这个一个整体缩放自己,那么可以用下面这段简单的代码:
void CListDlgDlg::OnSize(UINT nType, int cx, int cy)
{
	CDialogEx::OnSize(nType, cx, cy);

	// TODO: 在此处添加消息处理程序代码
	if(m_List.GetSafeHwnd()==NULL)   return;
	CRect rect;
	this->GetClientRect(&rect);
	CPoint pot = rect.TopLeft();
	m_List.SetWindowPos(NULL, pot.x+10, pot.y+10, 
		rect.Width()-pot.x-20, rect.Height()-pot.y-20, NULL);
	TRACE("RECT: %d, %d\n", rect.Width(), rect.Height());
	CRect rectList;
	m_List.GetWindowRect(&rectList);
	TRACE("List: %d, %d\n", rectList.Width(), rectList.Height());
}
如果要让列也自动缩放,那么就要复杂很多,请参考: 把ListCtrl最后一列自动调整大小;并在对话框大小改变时随对话框改变
------------------------------------------------------AutoCSDN签名档------------------------------------------------------
码农场——码农播种代码、放牧思想的农场!
schlafenhamster 2013-05-12
  • 打赏
  • 举报
回复
BOOL SetColumnWidth( int nCol, int cx );
MagicFuzzX 2013-05-12
  • 打赏
  • 举报
回复
引用 1 楼 d704791892 的回复:
获取对话框的大小,并用获得的对话框的大小控制ListCtrl每一列的大小,用百分比来控制,不要将ListCtrl的每一列大小写死
如何获取对话框的大小,还有那个InsertColumn如何使用百分比?
微尘8 2013-05-12
  • 打赏
  • 举报
回复
获取对话框的大小,并用获得的对话框的大小控制ListCtrl每一列的大小,用百分比来控制,不要将ListCtrl的每一列大小写死

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧