日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

MFC 对话框打印和打印预览知识总结

發(fā)布時(shí)間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC 对话框打印和打印预览知识总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?1、準(zhǔn)備知識(shí)

?

函數(shù)名覆蓋函數(shù)可能完成的任務(wù)
CView::OnPreparePrinting()調(diào)用CprintInfo成員函數(shù)(如CprintInfo::SetMaxPage設(shè)置文檔長(zhǎng)度)或設(shè)置CprintInfo數(shù)據(jù)成員以影響Print對(duì)話框或打印預(yù)覽操作,然后調(diào)用DoPreparePrinting生成用于打印或打印預(yù)覽的設(shè)備描述表(注意必須覆蓋OnPreparePrinting并調(diào)用DoPreparePrinting)
CView::OnBeginPrinting()分配專門用于打印的字體,畫筆、畫刷和其它對(duì)象,根據(jù)設(shè)備描述表計(jì)算并設(shè)置文檔長(zhǎng),在設(shè)備描述表上存放所需的消息(這是第一個(gè)訪問(wèn)設(shè)備描述表的的虛擬函數(shù))
CView::OnPrepareDC()設(shè)置打印當(dāng)前頁(yè)面的文本或圖形屬性,修改視圖原點(diǎn),以打印當(dāng)前頁(yè)面,如果沒有設(shè)置文檔長(zhǎng)度,在文檔末尾終止打印循環(huán)(CprintInfo::m_bContinuePrinting賦值FALSE)
CView::OnPrint()調(diào)用OnDraw進(jìn)行輸出;調(diào)用OnDraw前選擇OnBeginPrinting分配的字體,調(diào)用OnDraw后取消對(duì)象,打印只出現(xiàn)在文檔打印版中的頁(yè)頭和頁(yè)腳,如果打印輸出與屏幕輸出的外觀不同, 在這里打印,而不是調(diào)用OnDraw
CView::OnEndPrinting()調(diào)用Cgdi::DeleteObject刪除OnBeginPrinting分配的對(duì)象

VS2017 MFC對(duì)話框程序打印及打印預(yù)覽的實(shí)現(xiàn)_微瀾111的博客-CSDN博客_mfc打印預(yù)覽MFC文檔/視圖的應(yīng)用程序,向?qū)Ыo了打印及打印預(yù)覽的標(biāo)準(zhǔn)支持。使這類應(yīng)用程序打印及打印預(yù)覽工作得以簡(jiǎn)化。另一類對(duì)話框程序卻沒有相應(yīng)支持,從MFC打印及打印預(yù)覽的標(biāo)準(zhǔn)支持入手,可以在對(duì)話框程序中,增加三個(gè)類以支持打印及打印預(yù)覽,本文介紹了這三個(gè)類的實(shí)現(xiàn)。 打印及打印預(yù)覽是編寫應(yīng)用程序經(jīng)常要解決的問(wèn)題,為了理解VC++對(duì)話框程序的打印及打印預(yù)覽實(shí)現(xiàn),要先掌握基于文檔/視圖的應(yīng)用程序打印及打印預(yù)覽的基本原理。所以分為兩部分介紹。https://blog.csdn.net/weixin_42403113/article/details/88873492

2、打印和顯示屏幕不一樣的地方

每英寸點(diǎn)數(shù)不同,所以往打印DC,和往屏幕DC里繪制時(shí),需要做一些轉(zhuǎn)換

void CxxView::OnPrint(CDC *pDC, CPrintInfo *pInfo)
{
?? ?// Print zoom is the difference between screen-?
?? ?// and printer resolution.
?? ?CClientDC dc( this );
?? ?int n ?= dc.GetDeviceCaps( LOGPIXELSX );
?? ?int n1 = pDC->GetDeviceCaps( LOGPIXELSX );

}

總結(jié)

以上是生活随笔為你收集整理的MFC 对话框打印和打印预览知识总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。