ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:29.80KB ,
资源ID:3650653      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3650653.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(CListCtrl控件.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

CListCtrl控件.docx

1、CListCtrl控件本人初次用CListCtrl控件的时候,对于 InsertItem和SetrtItemtext两个函数的作用始终不是太懂,比如如果不先调用InsertItem这个函数,后面的InsertItemtext函数写了,也不起作用.查了MSDN,也没有收获,经过有人点拔,才恍然大悟.今天将经验说一下,希望有共同爱好者少走弯路. InsertItem在MSDN中的函数原型如下 int InsertItem( const LVITEM* pItem ); int InsertItem( int nItem, LPCTSTR lpszItem ); int InsertItem( in

2、t 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)

3、;m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);这样,控件中的每一行的开头就有一个应用程序图标 现在转入正题,先介绍一下INSERTITEM个个参数的意义 nItem: 控件中行的索引 lpszItem : 控件头的名字 . SettItemtext函数的原型 BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText ); *注意这个函数中的参数nItem就是INSERTITEM中的NITEM, 也就是说InsertItem是向控件声请一行来放数据,记住只是声请,那么方数据的工作就

4、又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,01); m_SetItemtext(0,1,1); m_SetItemtext(0,2,2); 至于要添多少多少个数据,就由你的控件由多少列了 获得可以这样的道 int columns= m_listc

5、tr.GetHeaderCtrl()-GetItemCount(); 获得可以这样的道 int rows= m_listctrl.GetItemCount(); 下面附一个本人学习的实例/ DataView.cpp : implementation of the CDataView class/#include stdafx.h#include Data.h#include DataDoc.h#include DataView.h#include EditDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THI

6、S_FILE = _FILE_;#endif/ CDataViewIMPLEMENT_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_COM

7、MAND(IDM_SAVE, OnSave)/AFX_MSG_MAP/ Standard printing commandsON_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, OnDblclk

8、List1)ON_NOTIFY(NM_KILLFOCUS, IDC_LIST1, OnKillfocusList1)END_MESSAGE_MAP()/ CDataView construction/destructionCDataView: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

9、modifying/ the CREATESTRUCT csreturn CView:PreCreateWindow(cs);/ CDataView drawingvoid CDataView:OnDraw(CDC* pDC)CDataDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data here/ CDataView printingBOOL CDataView:OnPreparePrinting(CPrintInfo* pInfo)/ default preparationret

10、urn DoPreparePrinting(pInfo);void CDataView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initialization before printingvoid CDataView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add cleanup after printing/ CDataView diagnostics#ifdef _DEBUGvoid CDataView:Assert

11、Valid() constCView:AssertValid();void CDataView:Dump(CDumpContext& dc) constCView:Dump(dc);CDataDoc* CDataView:GetDocument() / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CDataDoc);return (CDataDoc*)m_pDocument;#endif /_DEBUG/ CDataView message handlersvoid CDataView:OnIniti

12、alUpdate() 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

13、,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_CH

14、ILD|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,

15、 / cStrikeOut DEFAULT_CHARSET, / nCharSet OUT_DEFAULT_PRECIS, / nOutPrecision CLIP_DEFAULT_PRECIS, / nClipPrecision DEFAULT_QUALITY, / nQuality DEFAULT_PITCH | FF_SWISS, / nPitchAndFamily Arial); m_ListCtrl.SetFont(m_pFont); m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);m_ListCtrl.SetExtendedSty

16、le(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,ID,LVCFMT_LEFT,100,-1);m_ListCtrl.InsertColumn(1,用户名,LVCFMT_LEFT,100,-1);m_ListCtrl.InsertColumn(2,密码,LVCFMT_LE

17、FT,200,-1);m_ListCtrl.InsertItem(0,01);m_ListCtrl.SetItemText(0,1,chetnao);m_ListCtrl.SetItemText(0,2,921984); m_ListCtrl.InsertItem(1,02);m_ListCtrl.SetItemText(1,1,mada);m_ListCtrl.SetItemText(1,2,345678);m_ListCtrl.InsertItem(2,03);m_ListCtrl.SetItemText(2,1,luoxian);m_ListCtrl.SetItemText(2,2,98

18、7654);extern CDataApp theApp;void CDataView:OnUser() / TODO: Add your command handler code here _RecordsetPtr m_pRecordset;try m_pRecordset = theApp.m_pConnection-Execute(select * from user12,NULL,adCmdText);catch(_com_error e) AfxMessageBox(e.ErrorMessage(); AfxMessageBox(e.Description(); CString s

19、tr; str.Format(%ld,e.Error); 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(ID); m_ListCtrl.InsertItem(1,(_bstr_t)m_pRecordset-Get

20、Collect(username); m_ListCtrl.InsertItem(0,(_bstr_t)m_pRecordset-GetCollect(password); /*for(int i=0;iGetCollect(ID); m_ListCtrl.SetItemText(i,1,(_bstr_t)m_pRecordset-GetCollect(username); m_ListCtrl.SetItemText(i,2,(_bstr_t)m_pRecordset-GetCollect(password); */ m_pRecordset-MoveNext(); void CDataVi

21、ew: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.GetNe

22、xtSelectedItem(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.

23、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

24、 = 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);

25、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 herem_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_nI

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1