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

📄 scoolwritedlg.cpp

📁 只须作点改动就可支持打印各种证件打印
💻 CPP
字号:
// ScoolWriteDlg.cpp : implementation file
//

#include "stdafx.h"
#include "SJWF.h"
#include "ScoolWriteDlg.h"
#include "sjwfset.h"
#include "sjwfdoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CScoolWriteDlg dialog

CStringArray m_stringArray;
CScoolWriteDlg::CScoolWriteDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CScoolWriteDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CScoolWriteDlg)
	m_strJszh = _T("");
	m_strMc = _T("");
	m_strFzr = _T("");
	m_strbxlx = _T("");
	m_strPzwh = _T("");
	m_stryxq = _T("");
	m_nHlhb = 1;
	m_strDz = _T("");
	m_strDay = 0;
	m_nYear = 0;
	m_nMonth = 0;
	//}}AFX_DATA_INIT
}


void CScoolWriteDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CScoolWriteDlg)
	DDX_Text(pDX, IDC_EDIT1, m_strJszh);
	DDV_MaxChars(pDX, m_strJszh, 13);
	DDX_Text(pDX, IDC_EDIT2, m_strMc);
	DDX_Text(pDX, IDC_EDIT3, m_strFzr);
	DDX_Text(pDX, IDC_EDIT4, m_strbxlx);
	DDX_Text(pDX, IDC_EDIT5, m_strPzwh);
	DDX_Text(pDX, IDC_EDIT6, m_stryxq);
	DDX_Radio(pDX, IDC_RADIO1, m_nHlhb);
	DDX_Text(pDX, IDC_EDIT7, m_strDz);
	DDX_Text(pDX, IDC_EDIT10, m_strDay);
	DDX_Text(pDX, IDC_EDIT8, m_nYear);
	DDX_Text(pDX, IDC_EDIT9, m_nMonth);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CScoolWriteDlg, CDialog)
	//{{AFX_MSG_MAP(CScoolWriteDlg)
	ON_BN_CLICKED(IDC_RECORDSAVE, OnRecordsave)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_BUTTON4, OnDelete)
	ON_BN_CLICKED(IDC_BUTTON3, OnQuery)
	ON_BN_CLICKED(IDC_BUTTON6, OnReturn1)
	ON_BN_CLICKED(IDC_BUTTON5, OnPrintFu)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CScoolWriteDlg message handlers

void CScoolWriteDlg::OnRecordsave() 
{
	BOOL bSuccess;
	UpdateData(TRUE);
	CSJWFSet a;
	int m_check;
	int choice=CDialog::GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2);
	if(choice==IDC_RADIO1)
		m_check=1;
	else
		m_check=0;
	bSuccess=a.AddRecord(m_strJszh,m_strMc,m_strDz,m_strFzr,m_strbxlx,m_strPzwh,m_stryxq,m_nHlhb);
	if(bSuccess==TRUE)
		AfxMessageBox("你已经成功的添加了一条记录!");
	UpdateData(FALSE);
}

void CScoolWriteDlg::OnRadio1() 
{
	// TODO: Add your control notification handler code here
	m_nHlhb=1;
}

void CScoolWriteDlg::OnRadio2() 
{
	m_nHlhb=-1;	
}

void CScoolWriteDlg::OnButton2() 
{
	int i; 
	i=AfxMessageBox("请确认你已保存然后打印!",MB_YESNO);
	if(i==IDNO)
		return;
	else
	{
	
	CTime time=CTime::GetCurrentTime();//得到当前时间 
	CString s=time.Format("%y  %m  %d");//转换时间格式 
		
	UpdateData(TRUE);
	CString szContents,szContents1,szContents2,szContents3,szContents4,szContents5,szContents6;
	GetDlgItemText( IDC_EDIT1, szContents );
	GetDlgItemText( IDC_EDIT2, szContents1 );
	GetDlgItemText( IDC_EDIT7, szContents6 );
	GetDlgItemText( IDC_EDIT3, szContents2 );
	GetDlgItemText( IDC_EDIT4, szContents3 );
	GetDlgItemText( IDC_EDIT5, szContents4 );
	GetDlgItemText( IDC_EDIT6, szContents5 );
   
	HDC    hdcPrn ;
	HDC hDC,hDC1;
    CPrintDialog *printDlg =
        new CPrintDialog(FALSE, PD_ALLPAGES | PD_RETURNDC, NULL);
    printDlg->m_pd.nMinPage = printDlg->m_pd.nMaxPage = 1;
    printDlg->m_pd.nFromPage = printDlg->m_pd.nToPage = 1;
    printDlg->DoModal();
    hdcPrn = printDlg->GetPrinterDC();
	hDC=printDlg->GetPrinterDC();
	hDC1=printDlg->GetPrinterDC();
    if (hdcPrn != NULL)
    {
        CDC *pDC = new CDC;
		pDC->Attach (hdcPrn);    
		pDC->StartDoc("My Printer Dialog");  
        pDC->StartPage();
		
		HFONT hFont1=ShowFont(hDC1,"宋体",200,160); 
		HFONT hOldFont1=(HFONT)::SelectObject(hDC1,hFont1); 
		pDC->TextOut(5500, 2000, szContents);
		::SelectObject(hDC1,hOldFont1);
		
		HFONT hFont=ShowFont(hDC,"宋体",200,160); 
		HFONT hOldFont=(HFONT)::SelectObject(hDC,hFont); 
		pDC->TextOut(3000,2400,szContents1 );
		pDC->TextOut(3000,2850, szContents6);
		pDC->TextOut(3000,3300,szContents2 );
		pDC->TextOut(3000,3750, szContents3);
		pDC->TextOut(3000,4200, szContents4);
		pDC->TextOut(3000,4650, szContents5);
		::SelectObject(hDC,hOldFont);

		HFONT hOldFont2=(HFONT)::SelectObject(hDC1,hFont1);
		pDC->TextOut(5000,5800,s);
		::SelectObject(hDC1,hOldFont2);
		pDC->EndPage(); 
		pDC->EndDoc();    
		pDC->Detach();      
		delete pDC;
	}
	delete printDlg;
	}
}



void CScoolWriteDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	
	// Do not call CDialog::OnPaint() for painting messages
}

BOOL CScoolWriteDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
//	CButton*pButton=(CButton*)GetDlgItem(IDC_BUTTON2);
//	pButton->GetState();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CScoolWriteDlg::SetPrinterSettings(CDC *pDC, HDC hdcPrn)
{
	short cxPage, cyPage;
	
	cxPage = ::GetDeviceCaps (hdcPrn, HORZRES) ;
	cyPage = ::GetDeviceCaps (hdcPrn, VERTRES) ;
	pDC->SetMapMode (MM_ANISOTROPIC) ;
	pDC->SetWindowExt ( 1000, 1000) ;
	pDC->SetViewportExt (cxPage / 2, -cyPage / 2) ;
	pDC->SetViewportOrg (cxPage / 2,  cyPage / 2) ;
	pDC->SetTextAlign (20) ;
}

HFONT CScoolWriteDlg::ShowFont(HDC pDC, LPCTSTR fontstyle, int fontheight, int fontweight)
{
    LOGFONT lf; 
	lf.lfCharSet=GB2312_CHARSET; 
	lf.lfClipPrecision=CLIP_DEFAULT_PRECIS; 
	lf.lfEscapement=0; 
	strcpy(lf.lfFaceName,fontstyle); //字体样式 
	lf.lfHeight=fontheight; //字体高度 
	lf.lfItalic=FALSE; 
	lf.lfOrientation=0; 
	lf.lfOutPrecision=OUT_DEFAULT_PRECIS; 
	lf.lfPitchAndFamily=FF_DONTCARE | DEFAULT_PITCH; 
	lf.lfQuality=DEFAULT_QUALITY; 
	lf.lfStrikeOut= FALSE; 
	lf.lfUnderline=FALSE; 
	lf.lfWeight=fontweight;//字体重量 
	lf.lfWidth=0; 
	
	HFONT hFont=::CreateFontIndirect(&lf); 
	return hFont; 
}

void CScoolWriteDlg::OnDelete() 
{
	int n;
//	BOOL bFind;
	CSJWFSet rsJW;
	n=MessageBox("你确定要删除这条记录吗?","提示",MB_YESNO);
	UpdateData(TRUE);
	CString strSQL;
	if(n==IDYES)
	{
		strSQL= _T("select * from  bxxk where  jszh= '"+this->m_strJszh+"'"); 
		try
		{
			if(rsJW.IsOpen())
			{
				rsJW.Close();
			}
			rsJW.Open(CRecordset::dynaset,strSQL);
			if (rsJW.IsBOF())
			{
				MessageBox("没有符合条件的教社证号!","提示",MB_OK);
				return;
			}
			else
			{
				if(rsJW.m_jszh==m_strJszh)
					rsJW.Delete();
			}
			
		}
		catch(CDBException &e)
		{
			MessageBox(e.m_strError,"提示",MB_OK);
		}
	}
	else
		return;
}

void CScoolWriteDlg::OnQuery() 
{
	UpdateData(TRUE);
	CString strSQL;
	strSQL= _T("select * from  bxxk where  jszh= '"+this->m_strJszh+"'");
	//+"or mc='"+this->m_strMc+"'"  
	CSJWFSet rsJszh;
	try
	{
		if(rsJszh.IsOpen())
		{
			rsJszh.Close();
		}
		rsJszh.Open(CRecordset::dynaset,strSQL);
		if (rsJszh.IsBOF())
		{
			MessageBox("没有符合条件的教社证号!","提示",MB_OK);
			return;
		}
		else
		{
			this->SetDlgItemText( IDC_EDIT1, rsJszh.m_jszh );
			this->SetDlgItemText( IDC_EDIT2, rsJszh.m_mc );
			this->SetDlgItemText( IDC_EDIT7, rsJszh.m_dz );
			this->SetDlgItemText( IDC_EDIT3, rsJszh.m_fzr );
			this->SetDlgItemText( IDC_EDIT4, rsJszh.m_bxlx );
			this->SetDlgItemText( IDC_EDIT5, rsJszh.m_pzwh );
			this->SetDlgItemText( IDC_EDIT6, rsJszh.m_yxq );
		}
		
	}
	catch(CDBException &e)
	{
		MessageBox(e.m_strError,"提示",MB_OK);
	}
}

void CScoolWriteDlg::OnReturn1() 
{
	EndDialog(0);	
}

void CScoolWriteDlg::OnPrintFu() 
{
	CTime time=CTime::GetCurrentTime();//得到当前时间 
	CString s=time.Format("%y  %m  %d");//转换时间格式 
	
	UpdateData(TRUE);
	CString szContents,szContents1,szContents2,szContents3,szContents4,szContents5,szContents6;
	GetDlgItemText( IDC_EDIT1, szContents );
	GetDlgItemText( IDC_EDIT2, szContents1 );
	GetDlgItemText( IDC_EDIT7, szContents6 );
	GetDlgItemText( IDC_EDIT3, szContents2 );
	GetDlgItemText( IDC_EDIT4, szContents3 );
	GetDlgItemText( IDC_EDIT5, szContents4 );
	GetDlgItemText( IDC_EDIT6, szContents5 );
	
	HDC    hdcPrn ;
	HDC hDC,hDC1;
    CPrintDialog *printDlg =
        new CPrintDialog(FALSE, PD_ALLPAGES | PD_RETURNDC, NULL);
    printDlg->m_pd.nMinPage = printDlg->m_pd.nMaxPage = 1;
    printDlg->m_pd.nFromPage = printDlg->m_pd.nToPage = 1;
    printDlg->DoModal();
    hdcPrn = printDlg->GetPrinterDC();
	hDC=printDlg->GetPrinterDC();
	hDC1=printDlg->GetPrinterDC();
    if (hdcPrn != NULL)
    {
        CDC *pDC = new CDC;
		pDC->Attach (hdcPrn);    
		pDC->StartDoc("My Printer Dialog");  
        pDC->StartPage();
		
		HFONT hFont1=ShowFont(hDC1,"宋体",210,175); 
		HFONT hOldFont1=(HFONT)::SelectObject(hDC1,hFont1); 
		pDC->TextOut(1775, 1720, szContents);
		::SelectObject(hDC1,hOldFont1);
		
		HFONT hFont=ShowFont(hDC,"宋体",150,150); 
		HFONT hOldFont=(HFONT)::SelectObject(hDC,hFont); 
		pDC->TextOut(1280,2220,szContents1 );
		pDC->TextOut(1280,2520, szContents6);
		pDC->TextOut(1280,3000,szContents2 );
		pDC->TextOut(1280,3300, szContents3);
		pDC->TextOut(1280,3600, szContents4);
		pDC->TextOut(1280,3900, szContents5);
		::SelectObject(hDC,hOldFont);
		
		HFONT hOldFont2=(HFONT)::SelectObject(hDC1,hFont1);
		pDC->TextOut(1750,5000,s);
		::SelectObject(hDC1,hOldFont2);
		pDC->EndPage(); 
		pDC->EndDoc();    
		pDC->Detach();      
		delete pDC;
	}
	delete printDlg;
}

⌨️ 快捷键说明

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