关于CListCtrl 请问CListCtrl的风格,比如我现在要显示数据库中的内容,应该怎样设置,能给我一段实例的代码吗?一般来CListCtrl应该是什么风格呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void CQuery::QueryDB(CString strSQL){ _CommandPtr pCommand; _RecordsetPtr m_pSet; pCommand.CreateInstance(__uuidof(Command)); pCommand->ActiveConnection=m_pConnection; ///////////////////////////////////////////////////////// CString m_strSQL; m_strSQL.Format("select COUNT(*) from score %s",strSQL); pCommand->CommandText=(_bstr_t)m_strSQL; pCommand->CommandType=adCmdText; try { pCommand->Parameters->Refresh(); m_pSet=pCommand->Execute(NULL,NULL,adCmdUnknown); } catch(_com_error e)///捕捉异常 { CString errormessage; errormessage.Format("错误信息:%s",e.ErrorMessage()); AfxMessageBox(errormessage);///显示错误信息 } _variant_t vIndex = (long)0; _variant_t vCount = m_pSet->GetCollect(vIndex);///取得第一个字段的值放入vCount变量 g_ItemCount=vCount.lVal; ///////////////////////////////////////////////////////// m_strSQL.Format("select * from score %s",strSQL); pCommand->CommandText=(_bstr_t)m_strSQL; pCommand->CommandType=adCmdText; try { pCommand->Parameters->Refresh(); m_pSet=pCommand->Execute(NULL,NULL,adCmdUnknown); } catch(_com_error e)///捕捉异常 { CString errormessage; errormessage.Format("错误信息:%s",e.ErrorMessage()); AfxMessageBox(errormessage);///显示错误信息 } CScoreView* pView=static_cast<CScoreView*>(p); pView->m_list.DeleteAllItems(); if(g_ItemCount==0) { return; } m_pSet->MoveFirst(); for(DWORD i=0;i<g_ItemCount;i++) { _bstr_t t1=(_bstr_t)m_pSet->GetCollect("微分"); _bstr_t t2=(_bstr_t)m_pSet->GetCollect("英IV"); _bstr_t t3=(_bstr_t)m_pSet->GetCollect("概率"); _bstr_t t4=(_bstr_t)m_pSet->GetCollect("数模"); _bstr_t t5=(_bstr_t)m_pSet->GetCollect("数据"); _bstr_t t6=(_bstr_t)m_pSet->GetCollect("马经"); _bstr_t t7=(_bstr_t)m_pSet->GetCollect("数3"); _bstr_t t8=(_bstr_t)m_pSet->GetCollect("离散"); _bstr_t t9=(_bstr_t)m_pSet->GetCollect("物2"); _bstr_t t10=(_bstr_t)m_pSet->GetCollect("英3"); _bstr_t t11=(_bstr_t)m_pSet->GetCollect("物实"); _bstr_t t12=(_bstr_t)m_pSet->GetCollect("马哲"); _bstr_t t13=(_bstr_t)m_pSet->GetCollect("德育"); _bstr_t t14=(_bstr_t)m_pSet->GetCollect("平均分"); _bstr_t t15=(_bstr_t)m_pSet->GetCollect("学分绩"); pView->m_list.InsertItem(i,(char*)(_bstr_t)m_pSet->GetCollect("ID")); pView->m_list.SetItemText(i,1,(char*)(_bstr_t)m_pSet->GetCollect("姓名")); pView->m_list.SetItemText(i,2,t1); pView->m_list.SetItemText(i,3,t2); pView->m_list.SetItemText(i,4,t3); pView->m_list.SetItemText(i,5,t4); pView->m_list.SetItemText(i,6,t5); pView->m_list.SetItemText(i,7,t6); pView->m_list.SetItemText(i,8,t7); pView->m_list.SetItemText(i,9,t8); pView->m_list.SetItemText(i,10,t9); pView->m_list.SetItemText(i,11,t10); pView->m_list.SetItemText(i,12,t11); pView->m_list.SetItemText(i,13,t12); pView->m_list.SetItemText(i,14,t13); pView->m_list.SetItemText(i,15,t14); pView->m_list.SetItemText(i,16,t15); m_pSet->MoveNext(); }} m_list.SetExtendedStyle(m_DefineURL.GetExtendedStyle( )|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);//风格 LV_COLUMN lvColunm;//插入列头 lvColunm.mask=LVCF_TEXT|LVCF_FMT|LVCF_WIDTH; lvColunm.fmt=LVCFMT_CENTER; lvColunm.cx=150; lvColunm.pszText=""; m_list.InsertColumn(0,&lvColunm); lvColunm.cx=250; lvColunm.pszText=""; m_list.InsertColumn(1,&lvColunm); m_list.InsertItem(nListIndex,"title");//插入操作 m_list.SetItemText(nListIndex++,1,"单击可进行修改"); 如上所说,一般采用report风格一般是3个步骤1先画好框架 m_listctrl.InsertColumn(0, "编号", LVCFMT_LEFT, 60);//0表示第1列 m_listctrl.InsertColumn(1, "服务项目", LVCFMT_LEFT, 150);2插入数据 m_listctrl.InsertItem(LVIF_TEXT|LVIF_STATE, i, str, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED, 0, 0);//这是数据行的第1列//有别于其他列3 m_listctrl.SetItemText(i,1,sevname);//第i行,第1+1列,i与上面的i一致如果要更多行和列,依次添加就行 求CString截取数字~~ 如何使用CFileDialog默认支持多个格式 加背景图片的问题 兄弟们,帮我看个问题。能解决的给分。 求一个最基本的MFC多线程使用例子 关于MSXML的namespace的问题。。。 VECT模板数组中数据如何调整位置? 如何把SendList(DATA &data,DWORD n)变成COM接口的方法呢? 关于opengl颜色改变问题!!求高手指教!!! 找不到基类??以前有人问过,但我找不到贴子? 怎么把这样的字符串转换成日期 使用双缓冲绘图时出现错误!
void CQuery::QueryDB(CString strSQL)
{
_CommandPtr pCommand;
_RecordsetPtr m_pSet;
pCommand.CreateInstance(__uuidof(Command));
pCommand->ActiveConnection=m_pConnection;
/////////////////////////////////////////////////////////
CString m_strSQL;
m_strSQL.Format("select COUNT(*) from score %s",strSQL);
pCommand->CommandText=(_bstr_t)m_strSQL;
pCommand->CommandType=adCmdText; try
{
pCommand->Parameters->Refresh();
m_pSet=pCommand->Execute(NULL,NULL,adCmdUnknown);
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
} _variant_t vIndex = (long)0;
_variant_t vCount = m_pSet->GetCollect(vIndex);///取得第一个字段的值放入vCount变量
g_ItemCount=vCount.lVal;
/////////////////////////////////////////////////////////
m_strSQL.Format("select * from score %s",strSQL);
pCommand->CommandText=(_bstr_t)m_strSQL; pCommand->CommandType=adCmdText; try
{
pCommand->Parameters->Refresh();
m_pSet=pCommand->Execute(NULL,NULL,adCmdUnknown);
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
CScoreView* pView=static_cast<CScoreView*>(p);
pView->m_list.DeleteAllItems(); if(g_ItemCount==0)
{
return;
}
m_pSet->MoveFirst();
for(DWORD i=0;i<g_ItemCount;i++)
{
_bstr_t t1=(_bstr_t)m_pSet->GetCollect("微分");
_bstr_t t2=(_bstr_t)m_pSet->GetCollect("英IV");
_bstr_t t3=(_bstr_t)m_pSet->GetCollect("概率");
_bstr_t t4=(_bstr_t)m_pSet->GetCollect("数模");
_bstr_t t5=(_bstr_t)m_pSet->GetCollect("数据");
_bstr_t t6=(_bstr_t)m_pSet->GetCollect("马经");
_bstr_t t7=(_bstr_t)m_pSet->GetCollect("数3");
_bstr_t t8=(_bstr_t)m_pSet->GetCollect("离散");
_bstr_t t9=(_bstr_t)m_pSet->GetCollect("物2");
_bstr_t t10=(_bstr_t)m_pSet->GetCollect("英3");
_bstr_t t11=(_bstr_t)m_pSet->GetCollect("物实");
_bstr_t t12=(_bstr_t)m_pSet->GetCollect("马哲");
_bstr_t t13=(_bstr_t)m_pSet->GetCollect("德育");
_bstr_t t14=(_bstr_t)m_pSet->GetCollect("平均分");
_bstr_t t15=(_bstr_t)m_pSet->GetCollect("学分绩");
pView->m_list.InsertItem(i,(char*)(_bstr_t)m_pSet->GetCollect("ID"));
pView->m_list.SetItemText(i,1,(char*)(_bstr_t)m_pSet->GetCollect("姓名"));
pView->m_list.SetItemText(i,2,t1);
pView->m_list.SetItemText(i,3,t2);
pView->m_list.SetItemText(i,4,t3);
pView->m_list.SetItemText(i,5,t4);
pView->m_list.SetItemText(i,6,t5);
pView->m_list.SetItemText(i,7,t6);
pView->m_list.SetItemText(i,8,t7);
pView->m_list.SetItemText(i,9,t8);
pView->m_list.SetItemText(i,10,t9);
pView->m_list.SetItemText(i,11,t10);
pView->m_list.SetItemText(i,12,t11);
pView->m_list.SetItemText(i,13,t12);
pView->m_list.SetItemText(i,14,t13);
pView->m_list.SetItemText(i,15,t14);
pView->m_list.SetItemText(i,16,t15);
m_pSet->MoveNext();
}
}
lvColunm.mask=LVCF_TEXT|LVCF_FMT|LVCF_WIDTH;
lvColunm.fmt=LVCFMT_CENTER;
lvColunm.cx=150;
lvColunm.pszText="";
m_list.InsertColumn(0,&lvColunm);
lvColunm.cx=250;
lvColunm.pszText="";
m_list.InsertColumn(1,&lvColunm); m_list.InsertItem(nListIndex,"title");//插入操作
m_list.SetItemText(nListIndex++,1,"单击可进行修改");
一般是3个步骤
1先画好框架
m_listctrl.InsertColumn(0, "编号", LVCFMT_LEFT, 60);//0表示第1列
m_listctrl.InsertColumn(1, "服务项目", LVCFMT_LEFT, 150);
2插入数据
m_listctrl.InsertItem(LVIF_TEXT|LVIF_STATE, i, str, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED, 0, 0);//这是数据行的第1列
//有别于其他列
3
m_listctrl.SetItemText(i,1,sevname);//第i行,第1+1列,i与上面的i一致如果要更多行和列,依次添加就行