www.pudn.com > 45365885686.rar > BinDataDlg.cpp


// BinDataDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "PackInter.h" 
#include "BinDataDlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CBinDataDlg dialog 
 
 
CBinDataDlg::CBinDataDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CBinDataDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CBinDataDlg) 
	//}}AFX_DATA_INIT 
	m_hBkBrush = CreateSolidBrush(RGB(255,255,255)); 
 
	m_bIsScrolling = false; 
} 
 
 
void CBinDataDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CBinDataDlg) 
	DDX_Control(pDX, IDC_LINENUM, m_lineNumCtrl); 
	DDX_Control(pDX, IDC_HEXDATA, m_hexDataCtrl); 
	DDX_Control(pDX, IDC_CHARDATA, m_charDataCtrl); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CBinDataDlg, CDialog) 
	//{{AFX_MSG_MAP(CBinDataDlg) 
	ON_WM_CLOSE() 
	ON_WM_DESTROY() 
	ON_EN_VSCROLL(IDC_CHARDATA, OnVscrollChardata) 
	ON_WM_SIZE() 
	ON_WM_CTLCOLOR() 
	ON_EN_VSCROLL(IDC_LINENUM, OnVscrollLinenum) 
	ON_EN_VSCROLL(IDC_HEXDATA, OnVscrollHexdata) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CBinDataDlg message handlers 
 
void CBinDataDlg::OnOK()  
{ 
	// TODO: Add extra validation here 
	 
//	CDialog::OnOK(); 
} 
 
void CBinDataDlg::OnCancel()  
{ 
	// TODO: Add extra cleanup here 
	 
//	CDialog::OnCancel(); 
} 
 
void CBinDataDlg::OnClose()  
{ 
	// TODO: Add your message handler code here and/or call default 
	 
//	CDialog::OnClose(); 
} 
 
void CBinDataDlg::OnDestroy()  
{ 
	CDialog::OnDestroy(); 
	 
	// TODO: Add your message handler code here 
	if(m_hBkBrush) 
		DeleteObject(m_hBkBrush); 
} 
 
void CBinDataDlg::PutData(char *pData, int len) 
{ 
	int i; 
	CString str0 = ""; 
	CString str1 = ""; 
	CString tmp; 
	int wd    = 8; 
	int width = wd*2; 
	int lines = len/width; 
	 
	for(i=0; i=len) 
			{ 
				flag = true; 
				break; 
			} 
			tmp.Format("%2.2X ", (unsigned char)pData[i]); 
 
			if(col==wd-1) 
				tmp += " "; 
			str0 += tmp; 
 
			if(pData[i]>=32 && pData[i]<255) 
				tmp.Format("%c", (unsigned char)pData[i]); 
			else 
				tmp.Format("."); 
			str1 += tmp; 
		} 
		if(row0? 
		(cx-lineWidth-hexWidth-margin*2):0; 
 
	if(m_lineNumCtrl.GetSafeHwnd()) 
	{ 
		m_lineNumCtrl.MoveWindow(0, 0, lineWidth, cy); 
	} 
	if(m_hexDataCtrl.GetSafeHwnd()) 
	{ 
		m_hexDataCtrl.MoveWindow(lineWidth+margin, 0, hexWidth, cy); 
	} 
	if(m_charDataCtrl.GetSafeHwnd()) 
	{ 
		m_charDataCtrl.MoveWindow(lineWidth+margin+hexWidth+margin, 0, charWidth, cy); 
	}	 
} 
 
HBRUSH CBinDataDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)  
{ 
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); 
	 
	// TODO: Change any attributes of the DC here 
	return m_hBkBrush; 
	 
	// TODO: Return a different brush if the default is not desired 
	return hbr; 
}