看了幾個示例程序,發現OnPrepareDC函數經常被用到,就看了看有關的內容。
CVIEw類的成員函數OnPrepareDC的作用
virtual void OnPrepareDC( CDC* pDC, CPrintInfo* pInfo = NULL );
參數:
pDC: 指向用於描繪文檔圖形的設備環境的指針。
pInfo: 當OnPrepareDC函數被調用於打印或者打印預覽時指向用於描繪當前打印工作的CPrintInfo結構體。該結構體的成員變量m_nCurPage指明了需要打印的頁數。當OnPrepareDC被調用於屏幕顯示時該參數為NULL。
函數由應用程序框架調用,用於屏幕顯示時在OnDraw成員函數前調用,用於打印時在OnPrint函數前調用。該函數在用於屏幕顯示時的默認實現不進行任何操作。盡管如此,這個函數在派生類中被重載以調整設備環境的屬性,所以應該在派生類的實現的一開始調用基類的實現。
如果函數用於打印,該函數的默認實現檢查存放在參數pInfo中的頁信息,如果需要打印的文檔的長度沒有被指明,該函數就假定文檔只有一頁長,並且在第一頁打印完成之後通過將成員變量 m_bContinuePrinting設為假來停止打印循環。
出於以下目的重載OnPrepareDC函數:
1、需要調整設備環境的屬性時。比如要調整設置映射模式或其他特征時。
2、需要指明打印頁數時。一般情況下你已經指明了打印的長度在打印開始前,這時你使用OnPreparePrinting成員函數。然而,在你不知道文檔長度的時候,可以在打印進行中使用重載OnPrepareDC函數去檢測文檔的結束位置。當沒有需要打印的內容的時候,令m_bContinuePrinting成員變量為假來停止打印。
3、To send escape codes to the printer on a page-by-page basis. To send escape codes from OnPrepareDC, call the Escape member function of the pDC parameter.
相關內容:
CPrintInfo, CView::OnBeginPrinting, CView::OnDraw, CView::OnPreparePrinting, CVIEw::OnPrint
英語很重要啊,來背幾個單詞吧。
rectangle:矩形、方形
ellipse:橢圓
cricle:圓、圓環
coordinate:坐標
implementation:實現
devived classes:派生類
attribute:屬性
consequently:因此、所以
assume:假設、假定
mapping mode:映射模式
characteristic:特性、特征
pagination:頁碼、頁數
basis:根基、基礎部分
optimize:最優化、盡可能完善、充分利用
distinguish:區別、區分、辨別