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

📄 mylistctrl.cpp

📁 这是一个嗅探器
💻 CPP
字号:
// MyListCtrl.cpp : implementation file
//

#include "stdafx.h"
#include "snifferpro.h"
#include "MyListCtrl.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMyListCtrl

CMyListCtrl::CMyListCtrl()
{
	totallen=0;
	index=0;
}

CMyListCtrl::~CMyListCtrl()
{
}


BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
	//{{AFX_MSG_MAP(CMyListCtrl)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyListCtrl message handlers

void CMyListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
	CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
	int row = lpDrawItemStruct->itemID;
	CRect m_rect;
	int offset = 0;
	char str[20];

	//Init for Address
	this->GetItemText(row,0,str,20);
	offset=0;
	//计算出位置
    GetItemRect(row, &m_rect, LVIR_BOUNDS);
    m_rect.left = offset ;
    m_rect.right = m_rect.left + GetColumnWidth(0);
	//输出内容
	pDC->SetTextColor((::GetSysColor(COLOR_WINDOWTEXT)));
	pDC->SetBkColor((::GetSysColor(COLOR_BACKGROUND)));
	pDC->TextOut(m_rect.left,m_rect.top-1,str);

	//Init for Column 0~F	

	for(int i=1;i<=16 && (row*16+i)<=totallen;i++){
		//index++;
		GetItemText(row,i,str,20);
		char flag=str[2];//T表示高亮,F表示非高亮
		offset += GetColumnWidth(i-1);
		//计算出位置
		GetItemRect(row, &m_rect, LVIR_BOUNDS);
		m_rect.left = offset ;
		m_rect.right = m_rect.left + GetColumnWidth(i);
		char content[3];//剥去标志位T or F,输出内容前两个字节
		content[0]=str[0];
		content[1]=str[1];
		content[2]=0;
		if(flag=='F'){//没有选中
			//输出内容
			pDC->SetTextColor((::GetSysColor(COLOR_WINDOWTEXT)));
			pDC->SetBkColor((::GetSysColor(COLOR_BACKGROUND)));
			pDC->TextOut(m_rect.left,m_rect.top-1,content);	
		}
		else{
			//输出内容
			pDC->SetTextColor((::GetSysColor(COLOR_HIGHLIGHTTEXT)));
			pDC->SetBkColor((::GetSysColor(COLOR_HIGHLIGHT)));
			pDC->FillRect(m_rect, &CBrush(::GetSysColor(COLOR_HIGHLIGHT)));
			pDC->TextOut(m_rect.left,m_rect.top-1,content);
		}
	}
	//Init for Context
	this->GetItemText(row,17,str,20);
	//计算出位置
	offset=0;
	for(i=0;i<=16;i++)
		offset += GetColumnWidth(i);
    GetItemRect(row, &m_rect, LVIR_BOUNDS);
    m_rect.left = offset ;
    m_rect.right = m_rect.left + GetColumnWidth(17);
	//输出内容
	pDC->SetTextColor((::GetSysColor(COLOR_WINDOWTEXT)));
	pDC->SetBkColor((::GetSysColor(COLOR_BACKGROUND)));
	pDC->TextOut(m_rect.left,m_rect.top-1,str);                      
}

⌨️ 快捷键说明

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