複製鏈接
請複製以下鏈接發送給好友

IsPrinting

鎖定
IsPrinting是電腦術語,確定正在使用的設備上下文是否用於打印
CDC類成員
以前我們進行的輸出工作都是向屏幕上的一塊窗口區域中進行,而打印則是打印機向打印紙上輸出一些東西。的確,這兩者之間有很大的相似性,比如,它們都能輸出文本,也都能輸出一些圖形。正是基於這些相似性,在 Windows 中,用設備上下文將它們之間的共性統一起來了。你在進行打印和輸出時,你可以用相同的輸出函數(如TextOut)來往屏幕或打印紙上輸出。 Windows 會在不同的情況下,將輸出聯繫到相應的設備上。但是這並不意味着我們可以完全不考慮這兩者之間的差別,而認為我們只要實現了屏幕輸出功能就自動地實現了相應的打印功能。畢竟,它們之間有一些無法統一的差別:打印時,有頁和分頁的概念,即數據或輸出是有條理地組織在一張張有一定大小的紙上;而屏幕輸出時,則沒有頁和分頁的功能,同時,可以認為屏幕輸出的輸出區域是沒有大小限制的,超出窗口範圍的,我們可以用滾動條來滾動。
CView 有這樣三個虛擬函數:OnPaint(),OnDraw(CDC *pDC),OnPrint()。OnPaint()是當視類窗口需要在屏幕上輸出時被調用,負責完成窗口的屏幕輸出顯示工作;OnPrint()是當打印一頁時被調用,負責完成向某頁打印紙上打印。這兩個函數的缺省實現中包含了對OnDraw(CDC *pDC)的調用。我們以前的程序中,並不考慮打印問題,所以我們被告之在OnDraw 中考慮如何完成屏幕輸出工作。但現在不一樣了,我們在OnDraw 中添加代碼時,必須小心這有可能是在進行打印,並不是向一個窗口中輸出。如果這兩者在程序中不能統一,就必須分開考慮。分分開考慮有兩種方法:一是分別在OnPaint和OnPrint 中完成屏幕輸出和打印輸出工作,而不必依賴於OnDraw。二是在OnDraw 中,我們可以調用pDC->IsPrinting() 來識別目前是在進行哪種輸出工作。如果是在進行打印,pDC->IsPrinting()返回true。這樣我們就可以在OnDraw 中區別對待了。