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

📄 childview.cpp

📁 是本人编写的串行通信的程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// ChildView.cpp : implementation file
//

#include "stdafx.h"
//#include "hlthreproduction.h"
#include "ChildView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CString m_strNum=_T("");
/////////////////////////////////////////////////////////////////////////////
// CChildView

IMPLEMENT_DYNCREATE(CChildView, CWrapperView)

CChildView::CChildView()
{
/*	Odbc.Open(NULL,FALSE,FALSE,_T("ODBC;DSN=HelthManage;PWD=200377930"),CDatabase::noOdbcDialog);
	m_ReportSet=new CReportSet(&Odbc);
	m_pICCardRecordSet=new CICCardRecordSet(&Odbc);
	m_pUltraPatientSet=new CUltraPatientSet(&Odbc);
	m_ReportSet->Open(AFX_DB_USE_DEFAULT_TYPE,NULL,CRecordset::none);
	m_pICCardRecordSet->Open(AFX_DB_USE_DEFAULT_TYPE,NULL,CRecordset::none);
	m_pUltraPatientSet->Open(AFX_DB_USE_DEFAULT_TYPE,NULL,CRecordset::none);*/
}

CChildView::~CChildView()
{
  /* if(hBmp1!=NULL)
	   ::DeleteObject(hBmp1);
   if(hBmp2!=NULL)
	   ::DeleteObject(hBmp2);
   if(hBmp3!=NULL)
	   ::DeleteObject(hBmp3);
   if(hBmp4!=NULL)
	   ::DeleteObject(hBmp4);
   if(hBmp!=NULL)
	   ::DeleteObject(hBmp);
   if(bmpPhoto1!=NULL)
	   ::DeleteObject(bmpPhoto1);
   if(bmpPhoto2!=NULL)
	   ::DeleteObject(bmpPhoto2);
   if(bmpPhoto3!=NULL)
	   ::DeleteObject(bmpPhoto3);
   if(bmpPhoto4!=NULL)
	   ::DeleteObject(bmpPhoto4);
   if(bmpPhoto!=NULL)
	   ::DeleteObject(bmpPhoto);
    m_ReportSet->Close();
	m_pICCardRecordSet->Close();
	m_pUltraPatientSet->Close();
	delete m_ReportSet;
	delete m_pICCardRecordSet;
	delete m_pUltraPatientSet;
	Odbc.Close();*/
}


BEGIN_MESSAGE_MAP(CChildView, CWrapperView)
	//{{AFX_MSG_MAP(CChildView)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
   ON_COMMAND(ID_FILE_PRINT, OnFilePrint)
//   ON_COMMAND(ID_FILE_PRINT_PREVIEW, CWrapperView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CChildView drawing

void CChildView::OnDraw(CDC* pDC)
{

	  CWrapperView::OnDraw(pDC);
}

/////////////////////////////////////////////////////////////////////////////
// CChildView diagnostics

#ifdef _DEBUG
void CChildView::AssertValid() const
{
	CView::AssertValid();
}

void CChildView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CChildView message handlers

void CChildView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
	int printHDotsPerInch = pDC->GetDeviceCaps(LOGPIXELSX);
	int printVDotsPerInch = pDC->GetDeviceCaps(LOGPIXELSY);
    hScale = (float)printHDotsPerInch/(float)m_nWinHDotsPerInch;
	vScale = (float)printVDotsPerInch/(float)m_nWinVDotsPerInch;

	CView::OnBeginPrinting(pDC, pInfo);
}
void CChildView::OnFilePrint()
{
	CView::OnFilePrint();
}

void CChildView::OnInitialUpdate() 
{
	CWrapperView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	CClientDC clientDC(this);

	m_nWinHDotsPerInch=clientDC.GetDeviceCaps(LOGPIXELSX);
	m_nWinVDotsPerInch=clientDC.GetDeviceCaps(LOGPIXELSY);
}

void CChildView::OnPrint(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
		// TODO: add draw code here
/*	m_ReportSet->Requery();
	if(bmpPhoto1!=NULL)
		::DeleteObject(bmpPhoto1);
	if(bmpPhoto2!=NULL)
		::DeleteObject(bmpPhoto2);
	if(bmpPhoto3!=NULL)
		::DeleteObject(bmpPhoto3);
	if(bmpPhoto4!=NULL)
		::DeleteObject(bmpPhoto4);
	if(bmpPhoto!=NULL)
		::DeleteObject(bmpPhoto);
	if(!m_ReportSet->IsBOF())
		m_ReportSet->MoveFirst();
	CString NameText;
	CString m_B=m_strNum;
	int PhotoTop,PhotoRight,PhotoLeft,PhotoBottom;
	if(m_B==_T(""))
	{
		MessageBox("没有病人的记录,请重新选择!","打印提示窗",MB_OK);
	}
	else
	{
		//		pDC->SetMapMode(MM_TWIPS);
		m_ReportSet->Requery();
		CString B;
		CString SQL;
		if(!m_ReportSet->m_MachineStyle)
		{
		SQL.Format("识别号='%s'",m_B);         //Modify by 2003 8 8
		m_pICCardRecordSet->m_strFilter=SQL;
		m_pICCardRecordSet->Requery();
		if(!m_ReportSet->IsBOF())
			m_ReportSet->MoveFirst();
		
		CString ReportDataTime=m_pICCardRecordSet->m_CheckData;
		m_ReportSet->Requery();
		int PageWidth,PageHeight,PageLeft,PageTop;
		PageWidth=pInfo->m_rectDraw.right;
		PageHeight=pInfo->m_rectDraw.bottom;
		PageLeft=pInfo->m_rectDraw.left;
		PageTop=pInfo->m_rectDraw.top;
		LOGFONT lf;
		COLORREF clrRef;
		memset(&lf, 0, sizeof(LOGFONT));       // clear out structure.
		lf.lfHeight = m_ReportSet->m_HospitalFont;	// request a 12-pixel-height font
		lf.lfWidth = 0;
		lf.lfEscapement=0;
		lf.lfOrientation = 0;
		lf.lfWeight = FW_BOLD;//FW_THIN/FW_LIGHT/FW_NORMAL/FW_BOLD/FW_EXTRABOLD/FW_HEAVY/FW_DONTCARE(0)
		lf.lfItalic = 0;
		lf.lfUnderline = 0;
		lf.lfStrikeOut = 0;
		lf.lfCharSet =	DEFAULT_CHARSET;	//CHINESEBIG5_CHARSET/DEFAULT_CHARSET/GB2312_CHARSET/ANSI_CHARSET
		lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
		lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
		lf.lfQuality = DEFAULT_QUALITY;
		lf.lfPitchAndFamily = FF_DONTCARE;
		strcpy(lf.lfFaceName, "隶书");   // request a face name "Arial".
		CFont HospitalFont,ReportNameFont,ItemNameFont,ItemFont;
		CPen m_pen;
		VERIFY(HospitalFont.CreatePointFontIndirect(&lf, pDC));	//is measured in tenths of a point rather than logical units. 
		strcpy(lf.lfFaceName,"隶书");
		lf.lfHeight=m_ReportSet->m_ReportFont;
		lf.lfWeight=FW_BOLD;
		VERIFY(ReportNameFont.CreatePointFontIndirect(&lf,pDC));
		
		strcpy(lf.lfFaceName,"黑体");
		lf.lfHeight=m_ReportSet->m_CharactorFont;
		lf.lfWeight=FW_NORMAL;
		VERIFY(ItemNameFont.CreatePointFontIndirect(&lf,pDC));
		
		strcpy(lf.lfFaceName,"宋体");
		lf.lfHeight=m_ReportSet->m_Charactor;
		lf.lfWeight=FW_NORMAL;
		VERIFY(ItemFont.CreatePointFontIndirect(&lf,pDC));
		pDC->SelectObject(&HospitalFont);
		pDC->SetTextAlign(TA_LEFT);
		NameText=m_ReportSet->m_BigTitle;
		CSize FontSize;
		FontSize=pDC->GetTextExtent(NameText);
		int titleLeft=PageWidth-FontSize.cx;
		titleLeft/=2;
		pDC->TextOut(titleLeft,140,NameText);
		int PointTop=PageTop+140+FontSize.cy;
		PointTop+=40;
		pDC->SelectObject(&ReportNameFont);
		NameText=m_ReportSet->m_LittleTitle;	
		FontSize=pDC->GetTextExtent(NameText);
		titleLeft=PageWidth-FontSize.cx;
		titleLeft/=2;
		pDC->TextOut(titleLeft,PointTop,NameText);
		
		CBitmap m_pBitmap;
		HBITMAP bmpFlag;
		bmpFlag=(HBITMAP)::LoadImage(
			0,
			"TitleBmp.bmp",
			IMAGE_BITMAP,
			0,0,
			LR_CREATEDIBSECTION|LR_LOADFROMFILE);
		m_pBitmap.Attach(bmpFlag);
		BITMAP m_StructTitle;
		m_pBitmap.GetBitmap(&m_StructTitle);
		CDC memDC;
		memDC.CreateCompatibleDC(pDC);
		memDC.SelectObject(&m_pBitmap);
		pDC->SetStretchBltMode(COLORONCOLOR);//you must use this mode style ,or the printpreview picture can changing 
		pDC->StretchBlt(PageWidth/5,PointTop-FontSize.cy-60,PageWidth/10,PageWidth/10,&memDC,0,0,m_StructTitle.bmWidth,m_StructTitle.bmHeight,SRCCOPY);
		
		PointTop=PointTop+FontSize.cy;
		clrRef=0x0000000000;
		m_pen.CreatePen(PS_SOLID,6,clrRef);
		pDC->SelectObject(&m_pen);
		PointTop+=70;
		PhotoTop=PointTop;
		pDC->MoveTo(0,PointTop);
		pDC->LineTo(PageWidth,PointTop);
		CString ItemName="姓名:";
		PointTop+=80;
		int PointLeft=PageLeft+150;
		int ItemWidth=PageWidth-PointLeft*3;
		ItemWidth/=4;
		PhotoLeft=ItemWidth*4-200;
		PhotoRight=PhotoLeft+PointLeft;
		pDC->SelectObject(&ItemNameFont);	
		FontSize=pDC->GetTextExtent(ItemName);
		pDC->TextOut(PointLeft,PointTop,ItemName);
		CRect ItemRect(PointLeft+FontSize.cx,PointTop,ItemWidth+PointLeft,PointTop+FontSize.cy);
		pDC->SelectObject(&ItemFont);
		pDC->DrawText(m_pICCardRecordSet->m_strName,&ItemRect,DT_LEFT|DT_NOPREFIX|DT_WORDBREAK);
		ItemName="性别:";
		pDC->SelectObject(&ItemNameFont);
		pDC->TextOut(ItemWidth+PointLeft,PointTop,ItemName);
		pDC->SelectObject(&ItemFont);
		ItemRect.left=ItemWidth+FontSize.cx+PointLeft;
		ItemRect.right=ItemWidth*2+PointLeft;
		pDC->DrawText(m_pICCardRecordSet->m_strSex,&ItemRect,DT_LEFT|DT_NOPREFIX|DT_WORDBREAK);
		ItemName="年龄:";
		pDC->SelectObject(&ItemNameFont);
		pDC->TextOut(ItemWidth*2+PointLeft,PointTop,ItemName);
		ItemRect.left=ItemWidth*2+FontSize.cx+PointLeft;
		ItemRect.right=ItemWidth*3+PointLeft;
		pDC->SelectObject(&ItemFont);
		CString m_strAge;
		m_strAge.Format("%d",m_pICCardRecordSet->m_Age);
		pDC->DrawText(m_strAge,&ItemRect,DT_LEFT|DT_NOPREFIX|DT_WORDBREAK);
		ItemName="籍贯:";		
		pDC->SelectObject(&ItemNameFont);
		FontSize=pDC->GetTextExtent(ItemName);
		pDC->TextOut(ItemWidth*3+PointLeft,PointTop,ItemName);
		ItemRect.left=ItemWidth*3+FontSize.cx+PointLeft;
		ItemRect.right=ItemWidth*4+PointLeft;
		pDC->SelectObject(&ItemFont);
		pDC->DrawText(m_pICCardRecordSet->m_strJiGuan,&ItemRect,DT_LEFT|DT_NOPREFIX|DT_WORDBREAK);
		ItemWidth=PageWidth-PointLeft*3;
		ItemWidth/=3;
		ItemName="检查日期:";
		pDC->SelectObject(&ItemNameFont);
		PointTop+=FontSize.cy*5;
		pDC->TextOut(PointLeft,PointTop,ItemName);
		FontSize=pDC->GetTextExtent(ItemName);
		ItemRect.left=PointLeft+FontSize.cx;
		ItemRect.right=ItemWidth+PointLeft;
		ItemRect.top=PointTop;
		ItemRect.bottom=PointTop+FontSize.cy;
		pDC->SelectObject(&ItemFont);
		pDC->DrawText(ReportDataTime,&ItemRect,DT_LEFT|DT_NOPREFIX|DT_WORDBREAK);
		ItemName="联系方式:";
		pDC->SelectObject(&ItemNameFont);
		pDC->TextOut(ItemWidth+PointLeft,PointTop,ItemName);
		FontSize=pDC->GetTextExtent(ItemName);
		ItemRect.left=ItemWidth+FontSize.cx+PointLeft;
		ItemRect.right=ItemWidth*2+PointLeft;
		pDC->SelectObject(&ItemFont);
		pDC->DrawText(m_pICCardRecordSet->m_strConnectStyle,&ItemRect,DT_LEFT|DT_NOPREFIX|DT_WORDBREAK);

		ItemName="检查方式:";
		pDC->SelectObject(&ItemNameFont);
		pDC->TextOut(ItemWidth*2+PointLeft,PointTop,ItemName);
		ItemRect.left=ItemWidth*2+FontSize.cx+PointLeft;
		ItemRect.right=ItemWidth*3+PointLeft;
		pDC->SelectObject(&ItemFont);
		pDC->DrawText(m_pICCardRecordSet->m_strCheckStyle,&ItemRect,DT_LEFT|DT_NOPREFIX|DT_WORDBREAK);

		PointTop+=FontSize.cy+80;
		pDC->MoveTo(0,PointTop);
		pDC->LineTo(PageWidth,PointTop);
		PhotoBottom=PointTop;
		
		PointTop+=FontSize.cy;
		ItemName="超声图象:";
		pDC->SelectObject(&ItemNameFont);
		pDC->TextOut(PointLeft,PointTop,ItemName);
		PointTop+=FontSize.cy*2;
		int ImageLeft=PointLeft+FontSize.cx/2;
		int ImageWidth=PageWidth*3/5-ImageLeft;
		int ImageHeight=ImageWidth*3/4;
		CBitmap bitmapPhoto1,bitmapPhoto2,bitmapPhoto3,bitmapPhoto4;
		CBitmap bitmapPhoto;
		CString pathFile=m_pICCardRecordSet->m_strPictureOne;                //Modify by 2003 8 8
		CFileFind FindFile;
		BOOL m_bFind=(BOOL)FindFile.FindFile(pathFile,0);
		BITMAP structBMP;
		if(m_bFind)
		{
			if(m_ReportSet->m_PhotoProject==1)
			{
				bmpPhoto1=(HBITMAP)::LoadImage(
					0,
					pathFile,
					IMAGE_BITMAP,
					ImageWidth,ImageHeight,
					LR_CREATEDIBSECTION|LR_LOADFROMFILE);
			}
			else
			{
				bmpPhoto1=(HBITMAP)::LoadImage(
					0,
					pathFile,
					IMAGE_BITMAP,
					ImageWidth,ImageHeight,
					LR_CREATEDIBSECTION|LR_LOADFROMFILE);
			}
		}
		else
		{
			bmpPhoto1=(HBITMAP)::LoadImage(
				AfxGetResourceHandle(),
				MAKEINTRESOURCE(IDB_BITMAP_PTBKCOLOR),
				IMAGE_BITMAP,0,0,
				LR_CREATEDIBSECTION|LR_LOADMAP3DCOLORS);
			ASSERT(bmpPhoto1);
		}
		bitmapPhoto1.Attach(bmpPhoto1);	
		pathFile=m_pICCardRecordSet->m_strPictureTwo;               //Modify by 2003 8 8
		m_bFind=(BOOL)FindFile.FindFile(pathFile,0);
		if(m_bFind)
		{
			if(m_ReportSet->m_PhotoProject==1)
			{
				bmpPhoto2=(HBITMAP)::LoadImage(0,
					pathFile,
					IMAGE_BITMAP,
					ImageWidth/2-40,ImageHeight/2-30,
					LR_CREATEDIBSECTION|LR_LOADFROMFILE|LR_LOADMAP3DCOLORS);
			}
			else
			{
				bmpPhoto2=(HBITMAP)::LoadImage(
					0,
					pathFile,
					IMAGE_BITMAP,
					ImageWidth,ImageHeight,
					LR_CREATEDIBSECTION|LR_LOADFROMFILE|LR_LOADMAP3DCOLORS);
			}
		}
		else
		{
			bmpPhoto2=(HBITMAP)::LoadImage(
				AfxGetResourceHandle(),
				MAKEINTRESOURCE(IDB_BITMAP_PTBKCOLOR),
				IMAGE_BITMAP,0,0,
				LR_CREATEDIBSECTION|LR_LOADMAP3DCOLORS);
			ASSERT(bmpPhoto2);

⌨️ 快捷键说明

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