为什么我打印出来是乱码?打印预览是正确的中文。
CStringArray m_StringArray;
BOOL CPrint1Doc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
m_StringArray.SetSize(9);
m_StringArray[0]=" 画菊 ";
m_StringArray[1]=" 诗余戏笔不知狂, ";
m_StringArray[2]=" 岂是丹青费较量. ";
m_StringArray[3]=" 聚叶泼成千点墨, ";
m_StringArray[4]=" 攒花染出几痕霜. ";
m_StringArray[5]=" 淡浓神会风前影,";
m_StringArray[6]=" 跳脱秋生腕底香. ";
m_StringArray[7]=" 莫认东篱闲采掇,";
m_StringArray[8]=" 粘屏聊以慰重阳. ";
return TRUE;
}
void CPrint1View::OnDraw(CDC* pDC)
{
int i,j,nHeight;
CString str;
TEXTMETRIC tm;
CPrint1Doc* pDoc = GetDocument();
pDC->Rectangle(m_rectPrint+CRect(0,0,-20,20));//打印矩形
j=m_rectPrint.Width()/1440;
for(i=0;i<=j;i++)//设置横向尺寸
{
str.Format("%02d",i);
pDC->TextOut(i*1440,0,str);
}
j=-m_rectPrint.Height()/1440;
for(i=0;i<=j;i++)//设置纵向尺寸
{
str.Format("%02d",i);
pDC->TextOut(0,-i*1440,str);
}
pDC->GetTextMetrics(&tm);//得到字体结构
nHeight=tm.tmHeight+tm.tmExternalLeading;//得到字体高度
j=pDoc->m_StringArray.GetSize();
for(i=0;i<j;i++)//输出打印文本
{
pDC->TextOut(720,-i*nHeight-720,pDoc->m_StringArray[i]);
}
}