www.pudn.com > pdf417.rar > DisplayDataView.cpp


// DisplayDataView.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "pdf417.h" 
#include "DisplayDataView.h" 
#include "pdf417Doc.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CDisplayDataView 
 
IMPLEMENT_DYNCREATE(CDisplayDataView, CScrollView) 
 
CDisplayDataView::CDisplayDataView() 
{ 
	//设置显示字体 
	LOGFONT TTYFONT; 
	TTYFONT.lfHeight = 16; 
	TTYFONT.lfWidth = 9; 
	TTYFONT.lfEscapement = 0; 
	TTYFONT.lfOrientation = 0; 
	TTYFONT.lfWeight = FW_NORMAL; 
	TTYFONT.lfItalic = 0; 
	TTYFONT.lfUnderline = 0; 
	TTYFONT.lfStrikeOut = 0; 
	TTYFONT.lfCharSet = ANSI_CHARSET; 
	TTYFONT.lfOutPrecision = OUT_DEFAULT_PRECIS; 
	TTYFONT.lfClipPrecision = CLIP_DEFAULT_PRECIS; 
	TTYFONT.lfQuality = PROOF_QUALITY; 
	TTYFONT.lfPitchAndFamily = VARIABLE_PITCH | FF_ROMAN; 
	strcpy(TTYFONT.lfFaceName,"Courier"); 
	TTYFONTOBJECT = ::CreateFontIndirect(&TTYFONT); 
} 
 
CDisplayDataView::~CDisplayDataView() 
{ 
} 
 
 
BEGIN_MESSAGE_MAP(CDisplayDataView, CScrollView) 
	//{{AFX_MSG_MAP(CDisplayDataView) 
		// NOTE - the ClassWizard will add and remove mapping macros here. 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CDisplayDataView drawing 
 
void CDisplayDataView::OnInitialUpdate() 
{ 
	CScrollView::OnInitialUpdate(); 
 
	CSize sizeTotal; 
	// TODO: calculate the total size of this view 
	sizeTotal.cx = 100; 
	sizeTotal.cy = 100; 
	SetScrollSizes(MM_TEXT, sizeTotal); 
} 
 
void CDisplayDataView::OnDraw(CDC* pDC) 
{ 
	CPdf417Doc* pDoc = (CPdf417Doc *)GetDocument(); 
	if(!pDoc->m_filename.IsEmpty()) 
	{ 
		CSize size; 
		int yy=4*size.cy; 
		HFONT oldfont = (HFONT)pDC->SelectObject(TTYFONTOBJECT); 
 
		TEXTMETRIC tm; 
		pDC->GetTextMetrics( &tm ) ; 
		size.cx = tm.tmAveCharWidth  ; 
		size.cy = tm.tmHeight + tm.tmExternalLeading ; 
 
		CString str; 
		str.Format("Filename:  %s",pDoc->m_filename); 
		pDC->TextOut(0,0,str); 
		str.Format("Image Width:     %d",pDoc->m_bmpwidth); 
		pDC->TextOut(0,size.cy,str); 
		str.Format("Image Height:    %d",pDoc->m_bmpheight); 
		pDC->TextOut(0,size.cy*2,str); 
		str.Format("Image BitsPixel: %d",pDoc->m_bmpBitsPixel); 
		pDC->TextOut(0,size.cy*3,str); 
 
		if(pDoc->m_data.GetLength()>0) 
		{ 
			pDC->TextOut(0,size.cy*4,"DATA:",5); 
 
			char str1[10]; 
			int len=pDoc->m_data.GetLength(); 
			yy=4*size.cy; 
			for(int i=0;im_data[i]; 
				sprintf(str1,tmp<0x10?"0%x":"%x",tmp); 
				pDC->TextOut(((i%16)*3+6)*size.cx,yy,str1,2); 
				str1[0]=pDoc->m_data[i]; 
				pDC->TextOut(((i%16)+56)*size.cx,yy,str1,1); 
			} 
 
			CString str2; 
			yy+=size.cy; 
			pDC->TextOut(0,yy,"-------------------------------------------------------------------------", 
				strlen("-------------------------------------------------------------------------")); 
			yy+=size.cy; 
			pDC->TextOut(6*size.cx,yy,"Bar Code:",strlen("Bar Code:")); 
			for(int h=0;hHeight;h++) 
			{ 
				yy+=size.cy; 
				str2.Format("%3d.",h+1); 
				pDC->TextOut(8*size.cx,yy,str2); 
				for(int w=0;wWidth;w++) 
				{ 
					str2.Format("%3d",pDoc->m_middata[h*pDoc->Width+w]); 
					pDC->TextOut((w*4+15)*size.cx,yy,str2); 
				} 
			} 
		} 
 
		pDC->SelectObject(oldfont); 
 
		//设置View的滚动条范围 
		CSize sizeTotal; 
		sizeTotal.cx = 76*size.cx; 
		sizeTotal.cy = yy+size.cy; 
		SetScrollSizes(MM_TEXT,sizeTotal); 
	} 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CDisplayDataView diagnostics 
 
#ifdef _DEBUG 
void CDisplayDataView::AssertValid() const 
{ 
	CScrollView::AssertValid(); 
} 
 
void CDisplayDataView::Dump(CDumpContext& dc) const 
{ 
	CScrollView::Dump(dc); 
} 
#endif //_DEBUG 
 
///////////////////////////////////////////////////////////////////////////// 
// CDisplayDataView message handlers