📄 childview.cpp
字号:
// 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 + -