如下: void CTestPrintDcDlg::OnButton2() { // TODO: Add your control notification handler code here DOCINFO di; LPCTSTR tPrinterName = "POSTEK G-3106"; // get the printer DC CDC tPrinterDc; tPrinterDc.CreateDC(NULL,tPrinterName,NULL,NULL); // initial the DOCINFO memset( &di, 0, sizeof( DOCINFO)); di.cbSize = sizeof( DOCINFO ); di.lpszDocName = "task"; // start to print task StartDoc( tPrinterDc.m_hDC, &di ); // start to print a page StartPage( tPrinterDc.m_hDC ); tPrinterDc.TextOut(10,10,"sdfsdf"); CPen tPen; tPen.CreatePen(PS_SOLID,5,RGB(0,0,0)); CPen * tOldPen = (CPen *)tPrinterDc.SelectObject(&tPen); tPrinterDc.Rectangle(CRect(CPoint(100,100),CPoint(500,500))); tPrinterDc.SelectObject(tOldPen); // a page is printed EndPage( tPrinterDc.m_hDC ); // print task has finished. EndDoc( tPrinterDc.m_hDC ); tPrinterDc.DeleteDC(); }