本人初次用CListCtrl控件的时候,对于 InrtItem和SetrtItemtext两个函数的作用始终不是太懂,比如如果不先调用InrtItem这个函数,后面的InrtItemtext函数写了,也不起作用.查了MSDN,也没有收获,经过有人点拔,才恍然大悟.今天将经验说一下,希望有共同爱好者少走弯路.
InrtItem在MSDN中的函数原型如下
hepan int InrtItem( const LVITEM* pItem );
int InrtItem( int nItem, LPCTSTR lpszItem );
int InrtItem( int nItem, LPCTSTR lpszItem, int nImage );
int InrtItem( 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, intregretful nSubItemcantone, LPTSTR lpszText );
******************注意这个函数中的参数nItem就是INSERTITEM中的NITEM,
也就是说InrtItem是向控件声请一行来放数据,记住只是声请,那么方数据的工作就又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.InrtItem(0,"01");
m_SetItemtext(0,1,"1");
m_SetItemtext(0,2,"2");
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
至于要添多少多少个数据英文论文润色,就由你的控件由多少列了
山市译文获得可以这样的道 int columns= m_listctr.GetHeaderCtrl()->GetItemCount();
获得可以这样的道bich 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_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, OnUr)
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)
{investigater
// 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
either怎么读void CDataView::AsrtValid() const
{
CView::AsrtValid();
}
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();
2020年7月六级真题及答案
// TODO: Add your specialized code here and/or call the ba 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->ReleaDC(dc);
InitListCtrl(rect);
m_ImageList.Create(16,16,true,2,2);
m_ImageList.Add(theApp.LoadIcon(IDR_MAINFRAME));
}