VC数据库编程中的打印控制(2)
// 设置打印标志
m―DC.m―bPrinting=TRUE;
short cxInch=m―DC.GetDeviceCaps(LOGPIXELSX);
short cyInch=m―DC.GetDeviceCaps(LOGPIXELSY);
// 建立打印字体,m―fontPrint 是定义为CFont m_fontPrint的类成员变量
if(!m―fontPrint.CreateFont(MulDiv(FONTSIZE, -cyInch, 72),0,0,0, FW―NORMAL,0,0,0, GB2312―CHARSET, OUT―CHARACTER―PRECIS, CLIP―CHARACTER―PRECIS,DEFAULT―QUALITY, DEFAULT―PITCH|FF―DONTCARE, HFONTNAME)
return FALSE;
return TRUE;}
void CDlgDataPrint::DoClearPrintDC()
// 清除打印场景
{ m―fontPrint.DeleteObject();
m―DC.Detach();
::DeleteDC( m―hDC );}
void CDlgDataPrint::DoPrint()
// 实际打印输出
{ if(DoPreparePrintDC()==FALSE) return;
// 开始一次打印作业
CString str;
str.LoadString(AFX―IDS―APP―TITLE);
DOCINFO di;
::ZeroMemory (&di, sizeof (DOCINFO));
di.cbSize=sizeof (DOCINFO);
di.lpszDocName=str;
m―DC.StartDoc(&di);
m―DC.StartPage();
// 将打印字体选进设备场景
CFont* pOldFont=m―DC.SelectObject(&m―fontPrint);