⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spiderlist.cpp

📁 VC下的INTERNET的建立
💻 CPP
字号:
// SpiderList.cpp : implementation of the CSpiderList class
//

#include "stdafx.h"
#include "Spider.h"
#include "ThreadParams.h"
#include "Thread.h"

#include "SpiderDoc.h"
#include "SpiderList.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSpiderList

IMPLEMENT_DYNCREATE(CSpiderList, CListView)

BEGIN_MESSAGE_MAP(CSpiderList, CListView)
	//{{AFX_MSG_MAP(CSpiderList)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView::OnFilePrintPreview)
	ON_MESSAGE(WM_USER_CHECK_DONE,OnUpDateURL)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSpiderList construction/destruction

CSpiderList::CSpiderList()
{

}

CSpiderList::~CSpiderList()
{
}

BOOL CSpiderList::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	cs.style = (cs.style & ~LVS_TYPEMASK) | LVS_REPORT;
	cs.style |= LVS_AUTOARRANGE;

	return CListView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CSpiderList drawing

void CSpiderList::OnDraw(CDC* pDC)
{
	CSpiderDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: add draw code for native data here
}

void CSpiderList::OnInitialUpdate()
{
	CListView::OnInitialUpdate();
	CListCtrl& listView = GetListCtrl();
	listView.SetBkColor( RGB(255,255,255) );  // set bk color to white


}
CSpiderList * CSpiderList::GetView()
{
  
	CMDIChildWnd * pChild =
          ((CMDIFrameWnd*)(AfxGetApp()->m_pMainWnd))->MDIGetActive();
 
      if ( !pChild )
	  	  return NULL;
 
      CView * pView = pChild->GetActiveView();
 
      if ( !pView )	  return NULL;
 
      // Fail if view is of wrong kind
      if ( ! pView->IsKindOf( RUNTIME_CLASS(CSpiderList) ) )
	  return NULL;
 
      return (CSpiderList *) pView;
   }

/////////////////////////////////////////////////////////////////////////////
// CSpiderList printing

BOOL CSpiderList::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CSpiderList::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CSpiderList::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CSpiderList diagnostics

#ifdef _DEBUG
void CSpiderList::AssertValid() const
{
	CListView::AssertValid();
}

void CSpiderList::Dump(CDumpContext& dc) const
{
	CListView::Dump(dc);
}

CSpiderDoc* CSpiderList::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSpiderDoc)));
	return (CSpiderDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSpiderList message handlers

BOOL CSpiderList::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
{
	BOOL bCreated = CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
	if ( bCreated )
	{
		CListCtrl& listView = GetListCtrl();

		listView.InsertColumn( 0,_T("URL"), LVCFMT_LEFT,275,0 );
		listView.InsertColumn( 1,_T("Status"), LVCFMT_LEFT,150,0 );
		listView.InsertColumn( 2,_T("Type"), LVCFMT_LEFT,75, 0 );
		listView.InsertColumn( 3,_T("Size"), LVCFMT_LEFT,75, 0 );
		listView.InsertColumn( 4,_T("Modified"), LVCFMT_LEFT,200, 0 );


	}
	return bCreated;

}



LRESULT CSpiderList::OnUpDateURL(WPARAM wParam,LPARAM lParam) 
{
	CListCtrl& list = GetListCtrl();
	int nListEntries = list.GetItemCount();
	PURLStatus newEntry = (PURLStatus) lParam;

	if(newEntry->m_URL.IsEmpty()) return 0;

	list.InsertItem(nListEntries,newEntry->m_URL);
	list.SetItemText(nListEntries,1,newEntry->m_StatusString);
	list.SetItemText(nListEntries,2,newEntry->m_ContentType);
	list.SetItemText(nListEntries,3,newEntry->m_ContentLength);
	list.SetItemText(nListEntries,4,newEntry->m_LastModified);

	
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -