2012-01-24 103 views
0

如何使用基于MFC对话框的应用程序打印文档?我做了一个打印按钮。点击这个按钮后,我想打印一些文档或一些文本。在MFC应用程序中打印

+3

你的MFC书下一步要做什么?你有什么尝试? –

+0

http://www.codersource.net/mfc/mfc-tutorials/mfc-print-tutorial.aspx但仍然困惑于如何开始进行,因为它不是基于对话框的应用程序 – Durgesh

+0

哪个文档?具体每次点击或用户需要先浏览? – Sunscreen

回答

4

您可以使用SetDocumentHTML(LPCTSTR)方法创建一个无法控制的CHtmlEditCtrl控件并将其载入您的文本,然后调用PrintDocument()方法。

void WaitForComplete(IHTMLDocument2* document) 
{ 
    BSTR ready; 
    document->get_readyState(&ready); 
    while(wcscmp(ready, L"complete")) 
    { 
     AfxPumpMessage(); 
     document->get_readyState(&ready); 
    }; 
} 

void CPrintInMFCDialogBasedAppDlg::OnBnClickedPrint() 
{ 
    CHtmlEditCtrl PrintCtrl; 
    if(!PrintCtrl.Create(NULL, WS_CHILD, CRect(0, 0, 0, 0), this, 1)) 
    { 
     ASSERT(FALSE); 
     return; // Error! 
    } 
    CComPtr<IHTMLDocument2> document; 
    PrintCtrl.GetDocument(&document); 
    WaitForComplete(document); 
    PrintCtrl.SetDocumentHTML(_T("Hello!<BR>It is <B>my first</B> print!")); 
    WaitForComplete(document); 
    PrintCtrl.PrintDocument(); 
} 
+1

你可以举一些例子或链接,我可以找到这个? – Durgesh

+1

@durgesht:我用axample更新答案。 –