不可以。
CListCtrl是标准的二维表控件,无法产生一对多。
碰到这个问题,通常解决办法有两个:
第二列拆分为两列,这样显示上可能会变得不好看,根据自己的需要,这个是省力的办法;
自绘列表控件,需要一对多的时候,插入一个空的下一行,首列为空,并通过自绘,盖掉两行之间首列的分隔线。缺点是文字不能上下居中,并且可控性稍差和编程计算会更复杂。
如果以上不能解决问题,建议考虑其它控件或者形式来做界面吧。
我写过的一个mfc文件系统(用的是list control,代码质量有点差)首先呢拖个listcontrol控件,然后把转换
void CFileManageDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX)
DDX_Control(pDX, IDC_LIST1, m_list)
}
然后在你打开对话框的时候初始化
BOOL CFileManageDlg::OnInitDialog()
{...
m_list.InsertColumn(0, _T("文件名"))
m_list.InsertColumn(1, _T("大小"))
m_list.InsertColumn(2, _T("修改日期"))
m_list.InsertColumn(3, _T("文件类型"))
for(int j=0j<4j++)
m_list.SetColumnWidth(j ,140) //改变每一列宽度
return TRUE // 除非将焦点设置到控件,否则返回 TRUE
}
要添加的时候
m_list.InsertItem(0,Foldername)
m_list.SetItemText(0,2,iDate)
m_list.SetItemText(0,3,iType)
要删除的时候
m_list.DeleteItem(m_list.GetNextItem(-1,LVNI_SELECTED))
就是下面这个效果
你的串号我已经记下,采纳后我会帮你制作
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)