void CArtDlg::OnPaint() 
{
//CPaintDC dc(this); // device context for painting

// TODO: Add your message handler code here

if (IsIconic())
{
CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}

CDC* pDC;
pDC=GetDC();

rato=float((m_bitmapRect.right-m_bitmapRect.left)/vartorient.Size.x);
m_bitmapRect.bottom=m_bitmapRect.top+int(vartorient.Size.y*rato);
Draw(pDC,&m_bitmapRect);

// Do not call CDialog::OnPaint() for painting messages
}void CArtDlg::OnArtparameter() 
{
// TODO: Add your control notification handler code here
CDC dc;
CPrintDialog printDlg(FALSE);
short printQuality;

if(printDlg.DoModal()==IDCANCEL)
return;
printDlg.GetDefaults ();
DEVMODE *dm = printDlg.GetDevMode(); 
dm->dmOrientation = DMORIENT_LANDSCAPE;
dm->dmFields |= DM_ORIENTATION; 
printQuality=dm->dmPrintQuality;
//将打印纸大小设为自定义
dm->dmPaperSize=NULL;
//定义打印纸的长宽
dm->dmPaperLength=vartorient.Size.y;
dm->dmPaperWidth=vartorient.Size.x;


dc.Attach(printDlg.CreatePrinterDC());

dc.m_bPrinting=TRUE;
CString strTitle;
strTitle.LoadString (AFX_IDS_APP_TITLE);


DOCINFO di; // DOCINFO中有相关的打印信息
::ZeroMemory (&di, sizeof (DOCINFO));
di.cbSize = sizeof (DOCINFO);
di.lpszDocName = strTitle;//设置标题

if(dc.StartDoc(&di)==-1)// 开始打印
{
MessageBox("StartDoc error");
return ;
}
int horze=dc.GetDeviceCaps (HORZRES);
int vertical=dc.GetDeviceCaps (VERTRES);

//加入修改信息的语句

dc.StartPage();
rato=float((printQuality)/25.4);
         //CRect m_bitmapRect;    size是表格的尺寸。
m_bitmapRect.bottom =m_bitmapRect.top+int(vartorient.Size .y *rato);

Draw(&dc,&m_bitmapRect);//里面画的东东
dc.EndPage();


dc.EndDoc();  

}
怎么画出来的都是横向的?我想要竖向的!~!~怎么办?