在公司做的一个外挂程序,和C++获取所有USB接口的vid、pid等信息为同一项目,要增加打印条码的功能,并且要选择打印机。不同条码打印机的接口都有点不同,这里就不叙述,只获取所有连接的打印机信息。我做成一个按钮,点击按钮后跳出打印机界面可以选择打印机,按钮的消息函数如下:
void CRightView::OnClickPrinter()
{
CPrintDialog printDlg(FALSE); //创建打印机类
//printDlg.GetDefaults(); //获取默认设置
if (printDlg.DoModal() != IDOK) //判断没有点击确认
return;
CString printerName = printDlg.GetDeviceName();
gParams.SetPrinter(printerName);
gParams.SaveXml();
return;
}
展示
我的电脑没有连接打印机,但能看到一些打印格式,如果没有找到连入的打印机,要检查打印机是否要自己装驱动。按确定后,GetDeviceName()可以获取打印机名称,在业务代码中可以使用winspool.h的GetPrinter()获取打印机的状态。