?? untitled-02.txt
字號:
任務環境如 Windows中,程序則無此自由。因為程序A的輸出必須與程序 B的輸出相隔離。
首先這意味著各程序的輸出必須限制在自己的窗口中。GDI使用一簡單的機制保證在窗口
中畫圖的各程序遵循這些規則。這種機制即為設備描述表(DC)。
當Windows程序在屏幕、打印機或其他輸出設備上畫圖時,它并不是將像素直接輸出到
設備上,而是將圖繪制到由設備描述表(DC)表示的邏輯意義上的“顯示平面”上去。設備描
述表是深寓于Windows中的一種數據結構,它包含GDI需要的所有關于顯示平面情況的描
述字段,包括相連的物理設備和各種各樣的狀態信息。在平面上畫圖之前,Windows程序從
GDI獲取設備描述表句柄,并在每次調用GDI輸出函數時將句柄返回給GDI。若無有效的
設備描述表句柄,則GDI不會畫第一個像素點。通過設備描述表,GDI可確保程序所畫的任
何圖形都能剪貼到屏幕的特定區域。設備描述表在使GDI擺脫設備限制的過程中發揮了重
要的作用。獲得設備描述表句柄后,同一GDI函數可用來向多種輸出設備上畫圖。
在使用MFC編制Windows程序時,設備描述表具有更加突出的作用。除了可作為通往
各種輸出設備的橋梁之外,設備描述表對象還封裝了程序用來產生輸出的GDI函數。在
MFC中,您不用捕獲設備描述表句柄和調用GDI輸出函數,至少不必直接捕獲和調用,而是
通過創建一設備描述表對象并調用它的成員函數來畫圖。MFC的CDC類將Windows設備
描述表和獲取設備描述表句柄的 GDI函數就近封裝在一起,而CDC派生類如 CPaintDC和
CClientDC則代表Windows應用程序使用的不同類型的設備描述表。
2.1.IMFC設備描述表類
在 MFC應用程序中獲取設備描述表的一種方法是調用 CWnd:: GetDC,它返回指向表示
Windows設備描述表的 CDC對象的指針。在畫圖完畢時,要用 CWnd:: ReleaseDC釋放由
CWnd:: GetDC獲取的設備描述表指針。下面的程序代碼由 GetDC獲取 CDC指針,而后畫圖
并最終調用ReleaseDC釋放設備描述表:
CDC。 pDC= GetDC();
// Do some drawing
ReleaseDC(PDC);
若同樣的程序代碼出現在 onPaint處理程序中時,則需用 CWnd:: BeginPaint和 CWnd::
EndPaint分別代替GetDC和ReleaseDC,以保證合理地處理WM.PAINT消息:
PAINTSTRUCT PS;
CDC。 pDC= BeqinPaint(&ps);
// Do some drawwng
sndnaint(&ps);
GDI還支持存儲GDI命令序列的元文件,這些命令可重新執行以產生實際輸出。為獲
取元文件輸出的設備描述表,還要使用另一套函數來獲取和釋放CDC指針。而且,為獲取
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -