mfc下listbox控件显示字符串,实现字符格式输出的问题: 我知道%ns,但是显示有问题。求指导

str.Format(L"%-10s%-8s%-8s%-8s%-8s%-8s%-8s",m_pSet->m_sno,m_pSet->m_sname,m_pSet->m_s... str.Format(L"%-10s%-8s%-8s%-8s%-8s%-8s%-8s",m_pSet->m_sno,m_pSet->m_sname,m_pSet->m_sex,m_pSet->m_college,m_pSet->m_dept,m_pSet->m_position,m_pSet->m_phone);
m_list2.AddString(str);
怎么让输出的字符串能够输出显示(不够补空格),从而达到列表美观
展开
 我来答
tjw408797664
2011-06-05 · TA获得超过1153个赞
知道小有建树答主
回答量:1042
采纳率:0%
帮助的人:701万
展开全部
你用错了控件, 这样做起来会出现很多问题,就算你现在解决了,以后也会出现新的问题。
用list control吧, 用法如下:
void CFindStuInfoDlg::OnInitList() //初始化list control控件列
{
m_list.InsertColumn(0,"编号",LVCFMT_CENTER,90,-1);
m_list.InsertColumn(1,"姓名",LVCFMT_CENTER,80,-1);
m_list.InsertColumn(2,"性别",LVCFMT_CENTER,50,-1);
m_list.InsertColumn(3,"导师",LVCFMT_CENTER,60,-1);
m_list.InsertColumn(4,"入学年",LVCFMT_CENTER,60,-1);
m_list.InsertColumn(5,"出生年",LVCFMT_CENTER,60,-1);
m_list.InsertColumn(6,"专业",LVCFMT_CENTER,100,-1);
m_list.InsertColumn(7,"籍贯",LVCFMT_CENTER,120,-1);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//当选中某行时全选
}

void CFindStuInfoDlg::DisplayInfo() //显示list control控件信息
{

CString number,name,sex,tutor,comeYear,stuYear,specialty,place;
int index=0;

while(!m_rec->adoEOF) //从数据库中读取数据显示到控件上
{
number=(char*)(_bstr_t)m_rec->GetCollect("stuID");
m_list.InsertItem(index,number);

name=(char*)(_bstr_t)m_rec->GetCollect("stuName");
m_list.SetItemText(index,1,name);

sex=(char*)(_bstr_t)m_rec->GetCollect("stuSex");
m_list.SetItemText(index,2,sex);

tutor=(char*)(_bstr_t)m_rec->GetCollect("teaID");
m_list.SetItemText(index,3,tutor);

comeYear=(char*)(_bstr_t)m_rec->GetCollect("comeYear");
m_list.SetItemText(index,4,comeYear);

stuYear=(char*)(_bstr_t)m_rec->GetCollect("stuYear");
m_list.SetItemText(index,5,stuYear);

specialty=(char*)(_bstr_t)m_rec->GetCollect("specialty");
m_list.SetItemText(index,6,specialty);

place=(char*)(_bstr_t)m_rec->GetCollect("comeFrom");
m_list.SetItemText(index,7,place);

m_rec->MoveNext(); //下一记录
index++;
}
m_nCount=m_list.GetItemCount(); //获取控件上的记录数并显示
UpdateData(false);

}
追问
本来想采用这控件的,发现没弄清楚,显示老有问题,自己学的比较菜。不过你的回答很有启发,谢谢
pengjun122
2011-06-05
知道答主
回答量:47
采纳率:0%
帮助的人:21.5万
展开全部
在Format之前,你把字符串长度求出来,例如名字那一列,你设定名字为8个字节,当第一排得到的是6个字节,则补2个空格,第三排得到的名字为4个字节,补上4个空格,这样就可以达到对齐的效果了,不知道理解了没,希望对你又帮助,可以给我发消息探讨
追问
理解其一,%ns不是本身就可以补空格么?那应该能达到效果,可是出现这种情况,实在不解。具体如何改进呢?中文字符算两个吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
victor_td
2011-06-05 · 超过35用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:0
展开全部
listbox不是表格控件,还是用list control控件吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式