listview - yamaumima/hello.github.io GitHub Wiki
#include "stdafx.h"
#include "Sd.h"
#include "MainView.h"
#include "AddDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainView
IMPLEMENT_DYNCREATE(CMainView, CListView)
CMainView::CMainView():m_list(GetListCtrl())
{
}
CMainView::~CMainView()
{
}
BEGIN_MESSAGE_MAP(CMainView, CListView)
//{{AFX_MSG_MAP(CMainView)
ON_COMMAND(ID_EDIT_ADD, OnEditAdd)
ON_COMMAND(ID_EDIT_DEL, OnEditDel)
ON_COMMAND(ID_EDIT_MOD, OnEditMod)
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMainView drawing
void CMainView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CMainView diagnostics
#ifdef _DEBUG
void CMainView::AssertValid() const
{
CListView::AssertValid();
}
void CMainView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainView message handlers
void CMainView::OnInitialUpdate()
{//类似于对话框的OnInitDialog,在窗口未显示出来之前做初始化
CListView::OnInitialUpdate();
m_iList.Create(16,16,ILC_COLOR32|ILC_MASK ,8,8);
int i = 0;
while(i<5)
m_iList.Add(AfxGetApp()->LoadIcon(IDI_ICON1+i++));
m_list.SetImageList(&m_iList,LVSIL_SMALL);
m_list.ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES);
m_list.InsertColumn(0,"工号",0,200);
m_list.InsertColumn(1,"姓名",0,200);
m_list.InsertColumn(2,"部门",0,200);
}
void CMainView::OnEditAdd()
{
CAddDlg dlg;
if(IDCANCEL == dlg.DoModal())
return;
int i = m_list.GetItemCount();
m_list.InsertItem(i,dlg.m_szNumb,i%5);
m_list.SetItemText(i,1,dlg.m_szName);
m_list.SetItemText(i,2,dlg.m_szDept);
}
void CMainView::OnEditDel()
{
if(!m_list.GetSelectedCount())
{
AfxMessageBox("请选中一条数据再删除!");
return;
}
int nSel = m_list.GetSelectionMark();
if(IDYES==AfxMessageBox("确定删除该记录吗?",MB_YESNO))
m_list.DeleteItem(nSel);
}
void CMainView::OnEditMod()
{
if(!m_list.GetSelectedCount())
{
AfxMessageBox("请选中一条数据再修改!");
return;
}
int nSel = m_list.GetSelectionMark();
CAddDlg dlg;
dlg.m_szNumb = m_list.GetItemText(nSel,0);
dlg.m_szName = m_list.GetItemText(nSel,1);
dlg.m_szDept= m_list.GetItemText(nSel,2);
dlg.m_bModify = TRUE;
if(IDCANCEL == dlg.DoModal())
return;
m_list.SetItemText(nSel,0,dlg.m_szNumb) ;
m_list.SetItemText(nSel,1,dlg.m_szName );
m_list.SetItemText(nSel,2,dlg.m_szDept) ;
}
void CMainView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
OnEditMod() ;
*pResult = 0;
}
void CMainView::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
}