CListCtrl控件中InsertItem和SettItemtext函数的用法简介
更新时间:2024-01-23 06:58:01 阅读量: 教育文库 文档下载
CListCtrl控件中InsertItem和SettItemtext函数的用法简介
本人初次用CListCtrl控件的时候,对于 InsertItem和SetrtItemtext两个函数的作用始终不是太懂,比如如果不先调用InsertItem这个函数,后面的InsertItemtext函数写了,也不起作用.查了MSDN,也没有收获,经过有人点拔,才恍然大悟.今天将经验说一下,希望有共同爱好者少走弯路.
InsertItem在MSDN中的函数原型如下 int InsertItem( const LVITEM* pItem ); int InsertItem( int nItem, LPCTSTR lpszItem );
int InsertItem( int nItem, LPCTSTR lpszItem, int nImage );
int InsertItem( UINT nMask, int nItem, LPCTSTR lpszItem, UINT nState, UINT nStateMask, int nImage, LPARAM lParam );
一般我们用的比较多的时第2种和第三种,其中第三种时建立一个带有头标的项 要调用第三个,可以先声明一个CImageList对象 m_ImageList.Create(16,16,true,2,2);
m_ImageList.Add(theApp.LoadIcon(IDR_MAINFRAME)); m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL); 这样,控件中的每一行的开头就有一个应用程序图标
现在转入正题,先介绍一下INSERTITEM个个参数的意义 nItem: 控件中行的索引 lpszItem : 控件头的名字
......................................................................................................................................................................................................... SettItemtext函数的原型
BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText );
******************注意这个函数中的参数nItem就是INSERTITEM中的NITEM, 也就是说InsertItem是向控件声请一行来放数据,记住只是声请,那么方数据的工作就又SETITEMTEXT来实现 举例如下:
CListCtrl m_listctrl; m_listctrl = new ClistCtrl();
m_listctrl.Creae(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_EDITLABELS
,bigRect,this,IDC_LIST1
);
m_listctrl.InsertItem(0,\ m_SetItemtext(0,1,\ m_SetItemtext(0,2,\ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
至于要添多少多少个数据,就由你的控件由多少列了
获得可以这样的道 int columns= m_listctr.GetHeaderCtrl()->GetItemCount(); 获得可以这样的道 int rows= m_listctrl.GetItemCount(); // DataView.cpp : implementation of the CDataView class //
#include \#include \#include \#include \#include \#ifdef _DEBUG
#define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////// // CDataView
IMPLEMENT_DYNCREATE(CDataView, CView) BEGIN_MESSAGE_MAP(CDataView, CView) //{{AFX_MSG_MAP(CDataView) ON_COMMAND(IDM_USER, OnUser) ON_COMMAND(IDM_UP, OnUp) ON_COMMAND(IDM_DOWN, OnDown) ON_COMMAND(IDM_EDIT, OnEdit) ON_COMMAND(IDM_ADD, OnAdd) ON_COMMAND(IDM_DELETE, OnDelete) ON_COMMAND(IDM_SAVE, OnSave) //}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1) ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1) ON_NOTIFY(NM_KILLFOCUS, IDC_LIST1, OnKillfocusList1) END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// // CDataView construction/destruction CDataView::CDataView() {
// TODO: add construction code here m_nIndex = -1; }
CDataView::~CDataView() { }
BOOL CDataView::PreCreateWindow(CREATESTRUCT& cs) {
// TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs
return CView::PreCreateWindow(cs); }
///////////////////////////////////////////////////////////////////////////// // CDataView drawing
void CDataView::OnDraw(CDC* pDC) {
CDataDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
// TODO: add draw code for native data here }
///////////////////////////////////////////////////////////////////////////// // CDataView printing
BOOL CDataView::OnPreparePrinting(CPrintInfo* pInfo) {
// default preparation
return DoPreparePrinting(pInfo); }
void CDataView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {
// TODO: add extra initialization before printing }
void CDataView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {
// TODO: add cleanup after printing }
///////////////////////////////////////////////////////////////////////////// // CDataView diagnostics #ifdef _DEBUG
void CDataView::AssertValid() const {
CView::AssertValid(); }
void CDataView::Dump(CDumpContext& dc) const {
CView::Dump(dc); }
CDataDoc* CDataView::GetDocument() // non-debug version is inline {
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDataDoc))); return (CDataDoc*)m_pDocument; }
#endif //_DEBUG
///////////////////////////////////////////////////////////////////////////// // CDataView message handlers void CDataView::OnInitialUpdate() {
CView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
CDC *dc = GetDC(); CRect rect;
this->GetClientRect(&rect);
CString str = \加载数据库资源到列表中\ CSize sz = dc->GetTextExtent(str); rect.right = sz.cx; rect.bottom = sz.cy;
CStatic *state = new CStatic;
state->Create(str,WS_CHILD,rect,this); state->ShowWindow(SW_SHOW); this->ReleaseDC(dc);
InitListCtrl(rect);
m_ImageList.Create(16,16,true,2,2);
m_ImageList.Add(theApp.LoadIcon(IDR_MAINFRAME)); }
void CDataView::InitListCtrl(CRect rect) {
CRect bigRect;
this->GetClientRect(&bigRect); bigRect.top = rect.bottom;
m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_EDITLABELS
,bigRect,this,IDC_LIST1); //m_ListCtrl.Insert(0,\用户名\ //m_ListCtrl.InsertItem(1,\密码\ CFont *m_pFont = new CFont();
m_pFont->CreateFont(20, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_NORMAL, // nWeight FALSE, // bItalic
FALSE, // bUnderline 0, // cStrikeOut
DEFAULT_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily \
m_ListCtrl.SetFont(m_pFont);
m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); m_ListCtrl.SetBkColor(RGB(247,247,255)); m_ListCtrl.SetTextColor(RGB(0,0,255)); m_ListCtrl.SetTextBkColor(RGB(247,247,255)); m_ListCtrl.InsertColumn(0,\ m_ListCtrl.InsertColumn(1,\用户名\ m_ListCtrl.InsertColumn(2,\密码\ m_ListCtrl.InsertItem(0,\
m_ListCtrl.SetItemText(0,1,\ m_ListCtrl.SetItemText(0,2,\ m_ListCtrl.InsertItem(1,\ m_ListCtrl.SetItemText(1,1,\ m_ListCtrl.SetItemText(1,2,\ m_ListCtrl.InsertItem(2,\ m_ListCtrl.SetItemText(2,1,\ m_ListCtrl.SetItemText(2,2,\}
extern CDataApp theApp; void CDataView::OnUser() {
// TODO: Add your command handler code here _RecordsetPtr m_pRecordset; try {
m_pRecordset = theApp.m_pConnection->Execute(\
user12\ }
catch(_com_error e) {
AfxMessageBox(e.ErrorMessage()); AfxMessageBox(e.Description()); CString str;
str.Format(\ AfxMessageBox(str); return; }
if(m_pRecordset->BOF) {
MessageBox(\表中无记录\ return; } else {
int len = m_ListCtrl.GetHeaderCtrl()->GetItemCount(); while(!m_pRecordset->adoEOF) {
m_ListCtrl.InsertItem(2,(_bstr_t)m_pRecordset->GetCollect(\ m_ListCtrl.InsertItem(1,(_bstr_t)m_pRecordset->GetCollect(\ m_ListCtrl.InsertItem(0,(_bstr_t)m_pRecordset->GetCollect(\ /*for(int i=0;i m_ListCtrl.SetItemText(i,0,(_bstr_t)m_pRecordset->GetCollect(\ m_ListCtrl.SetItemText(i,1,(_bstr_t)m_pRecordset->GetCollect(\ m_ListCtrl.SetItemText(i,2,(_bstr_t)m_pRecordset->GetCollect(\ }*/ m_pRecordset->MoveNext(); } } } void CDataView::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition(); m_nIndex = m_ListCtrl.GetNextSelectedItem(pos); } void CDataView::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) { POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition(); m_nIndex = m_ListCtrl.GetNextSelectedItem(pos); CEditDlg dlg; dlg.m_strNo = m_ListCtrl.GetItemText(m_nIndex,0); dlg.m_strName = m_ListCtrl.GetItemText(m_nIndex,1); dlg.m_strPassword = m_ListCtrl.GetItemText(m_nIndex,2); if(IDOK == dlg.DoModal()) { m_ListCtrl.SetItemText(m_nIndex,0,dlg.m_strNo); m_ListCtrl.SetItemText(m_nIndex,1,dlg.m_strName); m_ListCtrl.SetItemText(m_nIndex,2,dlg.m_strPassword); } *pResult = 0; } void CDataView::OnUp() { // TODO: Add your command handler code here m_ListCtrl.SetFocus(); if(m_nIndex == -1) { MessageBox(\请选择一行!\ return ; } if(m_nIndex == 0) { MessageBox(\你选中的行已经时顶行!\ return ; } CString strNo,strName,strPassword; strNo = m_ListCtrl.GetItemText(m_nIndex,0); strName = m_ListCtrl.GetItemText(m_nIndex,1); strPassword = m_ListCtrl.GetItemText(m_nIndex,2); m_ListCtrl.DeleteItem(m_nIndex); m_ListCtrl.InsertItem(m_nIndex-1,strNo); m_ListCtrl.SetItemText(m_nIndex-1,1,strName); m_ListCtrl.SetItemText(m_nIndex-1,2,strPassword); m_nIndex--; m_ListCtrl.SetItemState(m_nIndex,LVIS_FOCUSED|LVIS_SELECTED,LVIS_FOCUSED|LVIS_SELECTED); } void CDataView::OnKillfocusList1(NMHDR* pNMHDR, LRESULT* pResult) { m_nIndex = -1; } void CDataView::OnDown() { // TODO: Add your command handler code here m_ListCtrl.SetFocus(); if(m_nIndex == -1) { MessageBox(\请选择一行!\ return ; } if(m_nIndex == m_ListCtrl.GetItemCount()-1) { MessageBox(\已经时最后一行!\ return ; } CString strNo,strName,strPassword; strNo = m_ListCtrl.GetItemText(m_nIndex,0); strName = m_ListCtrl.GetItemText(m_nIndex,1); strPassword = m_ListCtrl.GetItemText(m_nIndex,2); m_ListCtrl.DeleteItem(m_nIndex); m_ListCtrl.InsertItem(m_nIndex+1,strNo); m_ListCtrl.SetItemText(m_nIndex+1,1,strName); m_ListCtrl.SetItemText(m_nIndex+1,2,strPassword); m_nIndex++; m_ListCtrl.SetItemState(m_nIndex,LVIS_FOCUSED|LVIS_SELECTED,LVIS_FOCUSED|LVIS_SELECTED); } void CDataView::OnEdit() { // TODO: Add your command handler code here POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition(); m_nIndex = m_ListCtrl.GetNextSelectedItem(pos); if(m_nIndex == -1) { MessageBox(\请选择一行!\ return ; } CEditDlg dlg; dlg.m_strNo = m_ListCtrl.GetItemText(m_nIndex,0); dlg.m_strName = m_ListCtrl.GetItemText(m_nIndex,1); dlg.m_strPassword = m_ListCtrl.GetItemText(m_nIndex,2); if(IDOK == dlg.DoModal()) { m_ListCtrl.SetRedraw(false); m_ListCtrl.DeleteItem(m_nIndex); m_ListCtrl.InsertItem(m_nIndex,dlg.m_strNo); m_ListCtrl.SetItemText(m_nIndex,1,dlg.m_strName); m_ListCtrl.SetItemText(m_nIndex,2,dlg.m_strPassword); m_ListCtrl.SetRedraw(true); } } void CDataView::OnAdd() { // TODO: Add your command handler code here CEditDlg dlg; if(dlg.DoModal() == IDOK) { int count=m_ListCtrl.InsertItem(m_ListCtrl.GetItemCount(),dlg.m_strNo); m_ListCtrl.SetItemText(count,1,dlg.m_strName); m_ListCtrl.SetItemText(count,2,dlg.m_strPassword); } } void CDataView::OnDelete() { // TODO: Add your command handler code here if(m_nIndex == -1) { MessageBox(\请选择一行!\ return ; } m_ListCtrl.DeleteItem(m_nIndex); UINT flag = LVIS_SELECTED|LVIS_FOCUSED; m_ListCtrl.SetItemState(m_nIndex-1, flag, flag); } void CDataView::OnSave() { // TODO: Add your command handler code here CFile f; if(f.Open(\ { CString str=\号/t/tusername/t/tpassword/r/n\ f.Write(str,strlen(str)+1); for(int i=0;i str=m_ListCtrl.GetItemText(i,0)+\ \ f.Write(str,strlen(str)+1); } f.Close(); MessageBox(\保存成功!\ } else { MessageBox(\保存失败!\ } }
正在阅读:
CListCtrl控件中InsertItem和SettItemtext函数的用法简介01-23
财务主管2019年终述职报告03-11
幼儿园卫生保健知识02-13
网络系统集成主要包括哪些内容04-07
骨科各种体征08-28
小学教师自我评价100字04-30
缩略语03-24
哈尔滨住房购房合同03-24
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 控件
- SettItemtext
- 用法
- InsertItem
- 函数
- CListCtrl
- 简介
- 城市规划设计编制与收收费标准
- 大学生职业生涯规划期末考试答案
- 电子琴课程设计报告
- 考研指导:考研专业课“四轮”复习(李凤军)
- 工资管理系统(软件工程,面向对象)
- 有色金属及轴承合金习题(答案)
- 刮板输送机司机试题
- 师德试题及答案1
- 200种多肉植物习性及栽培要领 - 图文
- 浦东进才、建平2016学年第二学期期中素养分析 初二年级 语文学科
- 宁波北仑岩东排水有限公司小港污水处理厂
- 第3期美术在线作业22
- 门诊输液室规章制度
- 四川省阳光体育示范学校管理办法
- 使用Multiwfn结合VMD分析和绘制分子表面静电势分布
- 研究生FPGA实验项目(LED显示及秒表计时器设计)
- 关于2015年河南普通高等学校专升本的通知
- 财经法规课后巩固6
- 施工质量管理作业指导书 - 图文
- 长沙会展业发展蓝皮书