www.pudn.com > Nethief.rar > MyListView.cpp
// MyListView.cpp : implementation file
//
#include "stdafx.h"
#include "Nethief.h"
#include "MainFrm.h"
#include "MyListView.h"
#include "NethiefDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMyListView
IMPLEMENT_DYNCREATE(CMyListView, CListView)
CMyListView::CMyListView()
{
}
CMyListView::~CMyListView()
{
}
BEGIN_MESSAGE_MAP(CMyListView, CListView)
//{{AFX_MSG_MAP(CMyListView)
ON_WM_DESTROY()
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
ON_NOTIFY_REFLECT(LVN_ENDLABELEDIT, OnEndlabeledit)
ON_NOTIFY_REFLECT(LVN_KEYDOWN, OnKeydown)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMyListView drawing
void CMyListView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
/////////////////////////////////////////////////////////////////////////////
// CMyListView diagnostics
#ifdef _DEBUG
void CMyListView::AssertValid() const
{
CListView::AssertValid();
}
void CMyListView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMyListView message handlers
void CMyListView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_pDoc=(CNethiefDoc*)GetDocument();
m_pDoc->OnListInitalUpdate();
}
BOOL CMyListView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
cs.style|=LVS_REPORT|LVS_SHAREIMAGELISTS|LVS_EDITLABELS|LVS_SHOWSELALWAYS;
return CListView::PreCreateWindow(cs);
}
void CMyListView::OnDestroy()
{
// TODO: Add your message handler code here
m_pDoc->OnListDestroy();
CListView::OnDestroy();
}
//*****************************************************************
void CMyListView::OnEndlabeledit(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
// TODO: Add your control notification handler code here
m_pDoc->OnListEndlabeledit(pDispInfo,pResult);
}
void CMyListView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
m_pDoc->OnListDblclk(pNMListView,pResult);
}
//*****************************************************************
void CMyListView::OnKeydown(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
UINT nChar=pLVKeyDow->wVKey;
switch(nChar)
{
case VK_RETURN://按下Enter
{
m_pDoc->OnMenuFileRun();
break;
}
case VK_BACK://按下了Backspace
{
m_pDoc->OnToolbarBack();//调用TreeView的响应函数
break;
}
case VK_TAB:
{
CMainFrame* Frame;
Frame=(CMainFrame*)::AfxGetMainWnd();
Frame->m_wndSplitter.SetActivePane(0,0);//激活TreeView
break;
}
case 0x58://Ctrl+X
{
if(GetAsyncKeyState(VK_CONTROL)==-32767)
m_pDoc->OnToolbarCut(FALSE);
break;
}
case 0x43://Ctrl+C
{
if(GetAsyncKeyState(VK_CONTROL)==-32767)
m_pDoc->OnToolbarCopy(FALSE);
break;
}
case 0x56://Ctrl+V
{
if(GetAsyncKeyState(VK_CONTROL)==-32767)
m_pDoc->OnToolbarPaste();
break;
}
}
}