2012-01-24 78 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更新答案。 –