我正在尝试从应用程序启动默认打印对话框,但它没有出现。我能够从wordpad应用程序发出打印对话框,它也打印了decument但是,当我试图做同样的事情时,没有什么是幸福的。这是show print对话框的代码: -
PAGESETUPDLG printDialog;
ZeroMemory(&printDialog, sizeof(printDialog));
printDialog.lStructSize = sizeof(printDialog);
printDialog.hwndOwner = NULL; //or = NULL
PageSetupDlg(&printDialog);
请告诉我如何实现这一目标......
的问候,
穆克什
答案 0 :(得分:2)
你发布的代码在我打开的测试应用程序中运行良好,所以从技术上讲,代码没有任何问题。
如果您将hwndOwner指定为NULL,就像在示例代码中那样,打印对话框将打开为无模式对话框,可以在应用程序的GUI后面打开 - 因此您的代码可能正确地打开对话框,你只是没有看到它。由于无模式对话框不会阻止您与产生它的窗口进行交互,因此您可以完全与主GUI交互,而不会意识到打印对话框就在它后面。
你能指定hwndOwner吗?它应该是打开打印对话框的窗口的句柄,因此,正如我上面提到的,它会阻止用户在配置打印机设置的同时与主窗口进行交互。