1.MFC:
PRINTDLG printDlg;
GetPrinterDeviceDefaults(&printDlg);
SelectPrinter(printDlg.hDevNames,printDlg.hDevMode);
CreatePrinterDC(g_dcPrinterDC);
2.API:  使用EnumPrinters()
     PRINTER_INFO_5 * pinfo5 ;//Win98
     EnumPrinters (PRINTER_ENUM_DEFAULT, NULL, 5, NULL,
                        0, &dwNeeded, &dwReturned) ;
     pinfo5 = (PRINTER_INFO_5*)malloc (dwNeeded) ;
     EnumPrinters (PRINTER_ENUM_DEFAULT, NULL, 5, (PBYTE) pinfo5,
                        dwNeeded, &dwNeeded, &dwReturned) ;
  g_sPrnName=pinfo5->pPrinterName;
     free (pinfo5) ;
//在NT中把上面的5全部换成4,详情可查MSDN