不用DOC/VIEW類結構進行列印 (轉)
直接列印,不需要文件/視
聞怡洋 譯 to:wyy_cq@188">wyy_cq@188.net
This article was contributed by .
如果你需要在沒有使用文件/檢視的應用中使用列印功能(比如說在對話方塊中)你將無法利用MFC提供的功能,而且對於某些新手來講有些困難。 下面的的程式碼可以供你在對話方塊中如果在DOC/View中一樣使用列印功能。你必須定義OnBeginPrinting, OnEndPrinting 和 OnPrint三個,其原型和功能與在VIEW中一樣。
void CMyDialog::Print()
{
CDC dc;
CPrintDialog printDlg(FALSE);
//利用CPrintDialog 生成印表機裝置環境
if (printDlg.odal() == IDCANCEL) // Get printer settings from user 讓選擇列印紙張等
return;
dc.Attach(printDlg.GetPrinterDC()); // Attach a printer DC 讓HANDLE連線到dc上
dc.m_bPrinting = TRUE;
CString strTitle; // Get the application title ?
strTitle.LoadString(AFX_IDS_APP_TITLE);
DOCINFO di; // Initialise print document details DOCINFO中有相關的列印資訊
::ZeroMemory (&di, sizeof (DOCINFO));
di.cbSize = sizeof (DOCINFO);
di.lpszDocName = strTitle;//設定標題
BOOL bPrintingOK = dc.StartDoc(&di); // Begin a new print job 開始列印
// Get the printing extents and store in the m_rectDraw field of a
// CPrintInfo
CPrintInfo Info;//
Info.m_rectDraw.SetRect(0,0,
dc.GetDeviceCaps(HORZRES),
dc.GetDeviceCaps(VERTRES));//設定範圍
OnBeginPrinting(&dc, &Info); // 你自己定義的初始化功能
for (UINT page = Info.GetMinPage(); page
{Info.m_nCurPage = page;
OnPrint(&dc, &Info); // Call your "Print page" function
bPrintingOK = (dc.EndPage() > 0); // end page
}
OnEndPrinting(&dc, &Info); // 結束列印
if (bPrintingOK)
dc.EndDoc(); // end a print job
else
dc.AbortDoc(); // abort job.
dc.Detach(); // detach the printer DC
}
[譯者:其實在環境中是裝置無關的。只要有了DC,你可以使用各種GDI函式,而不需要理會是在螢幕或是在印表機上繪圖。在Windows3.X一般使用CreateDC建立列印環境,在下好象並不是很相容,使用CPrintDialog產生列印DC是個不錯的方法。你只要看看MFC的就能搞清楚PrintDialog是怎麼產生DC的了。 藍色的程式碼是講訴如何初始化列印的引數,而其他的引數你可以在OnBeginPrint中進行設定]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988404/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- IOS自動進行View標記iOSView
- 資料結構–進位制(任意)轉換資料結構
- doc轉docx(java-python)JavaPython
- 二進位制翻轉、結構體指標結構體指標
- C語言進位制轉換與列印C語言
- 類檔案結構_class類檔案的的結構
- 編輯器快速列印html模板結構HTML
- Databricks 第11篇:Spark SQL 查詢(行轉列、列轉行、Lateral View、排序)SparkSQLView排序
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 【Java】類的結構Java
- 類與結構體結構體
- Swift 類與結構體Swift結構體
- golang類和結構體Golang結構體
- 集合框架類結構圖框架
- 10個DOC轉為DOCX的最佳工具
- 進位制轉換的工具類
- 如何運用結構化思維進行故障處理
- 使用結構化克隆在 JavaScript 中進行深度複製JavaScript
- oracle體系結構(轉)Oracle
- 慕課 玩轉資料結構 從入門到進階 (草稿)資料結構
- Kotlin之類繼承結構Kotlin繼承
- Swift-類和結構體Swift結構體
- iOS探索 類的結構分析iOS
- Partial類、列舉、結構體結構體
- [轉帖]Release Schedule of Current Database Releases (Doc ID 742060.1)Database
- 給定json資料,將資料與頁面結構進行繫結JSON
- js列印小結JS
- 經濟結構轉型,智慧行業替代“工具性異化”行業
- 使用 Transformers 進行圖分類ORM
- Python列印類的屬性Python
- [swift 進階]讀書筆記-第五章:結構體和類 C5P3_結構體(struct)Swift筆記結構體Struct
- golang json字串轉結構體GolangJSON字串結構體
- C++ - 結構體轉cha*C++結構體
- [譯] 不用 Class,如何寫一個類
- 類的結構之一:屬性
- Faiss原始碼剖析:類結構分析AI原始碼
- JavaScript 資料由駝峰結構轉下劃線結構JavaScript
- 轉換流與列印流
- AA BB CC AA執行緒列印 ,CC執行緒列印執行緒