创建单文档应用程序,在选择窗口视图类型时,选择CListView视图。
在视图类的初始化消息函数中添加如下显示控件的代码:
void CTestlistView::OnInitialUpdate()
{
CListView::OnInitialUpdate()
CDC* dc = GetDC()
TEXTMETRIC tm
dc->GetTextMetrics(&tm)
GetListCtrl().ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SORTASCENDING)
GetListCtrl().SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE,0,
LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES|LVS_EX_TRACKSELECT)
GetListCtrl().InsertColumn(0,"Name",LVCFMT_LEFT,30*tm.tmAveCharWidth,0)
GetListCtrl().InsertColumn(1,"Comment",LVCFMT_LEFT,70*tm.tmAveCharWidth,1)
// TODO: You may populate your ListView with items by directly accessing
// its list control through a call to GetListCtrl().
}
是CScrollView类吧?这个是默认带滚动的,ADO只是一种连接数据库的方案,跟View 是什么类型的没有关系,当然也可以选别的类的,比如你选CListView作为基类,可以用GetListCtrl()得到ListView的指针然后利用ADO技术连接到数据库,从数据库中取得数据,然后一行一行的插入到列表中。此外也可以选CEditView,这样View 就成了一个类似于记事本的东东,可以把用ADO技术读到的数据库中表的内容显示到屏幕上。
关于ADO,可以看看COM的相关资料。
但如果刚开始学VC,还是看看孙鑫的VC视频,先了解一下MFC框架的机制比较好。
应该是基于CRecordView才行,这样系统会自动生成一个相应的***Set类,里面有你数据源中的所有字段和变量,同时View类里会有个自动生成的m_pSet指针,是Set类里的,这个指针直接可以 *** 作数据库。比如我要把数据库的数据全部显示到一个报表,就是这样:m_pSet->MoveFirst()
m_list.DeleteAllItems()//m_list是报表关联的Control型变量
do
{
CString s,s1,s2
s.Format("%d",i+1)
s1.Format("%ld",m_pSet->m_stuId)
s2.Format("%ld",m_pSet->m_stuFamilyNum)//这4条是变量类型的转换
m_list.InsertItem(i,s)//i是一个全局变量,初始值为0,用来计数的
m_list.SetItemText(i,1,s1)
m_list.SetItemText(i,2,m_pSet->m_stuName)
m_list.SetItemText(i,3,m_pSet->m_stuSex)
m_list.SetItemText(i,4,m_pSet->m_stuProfession)
m_list.SetItemText(i,5,m_pSet->m_stuClass)
m_list.SetItemText(i,6,m_pSet->m_stuHobby)
m_list.SetItemText(i,7,m_pSet->m_stuAddress)
m_list.SetItemText(i,8,s2)//向报表插入数据库的数据,也就是读取数据库
i++// i 递增
m_pSet->MoveNext()//指针后移
} while(!m_pSet->IsEOF())
m_pSet->Close()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)