《Windows 程式設計》學習筆記(五) (轉)

gugu99發表於2008-05-12
《Windows 程式設計》學習筆記(五) (轉)[@more@]

第五章  圖形基礎(一)-----基礎知識

  前面幾章涉及了一些在視窗客戶繪製圖形的知識和運用,本章比較詳細的講解了圖形繪製的基本原理和運用。
  提供了幾百個GDI,我們透過GDI函式在Windows上進行各種繪圖操作。GDI使我們的繪圖與裝置無關,也就是說可以在Windows支援的任意一種輸出裝置上繪圖而不用考慮這些裝置的特性。
  幾乎每一個GDI函式都需要一個裝置環境(DC)的控制程式碼作為引數,裝置環境中包括許多確定GDI函式如何在裝置上工作的當前屬性,比如:字型,文字色,線的顏色,線的粗細等。要獲得裝置環境中的這些資訊,可以用GetDeviceCaps()函式。
  每一個繪圖的過程都是如下面的順序來進行的:
  獲取一個裝置環境控制程式碼 ----&gt 利用裝置環境控制程式碼和GDI函式進行繪圖 ----&gt  釋放裝置環境控制程式碼
  Windows提供了幾種獲取和釋放裝置環境控制程式碼的方法:
 
  A)在處理WM_PAINT時
  hdc = BeginPaint(hwnd, &ps);
  [ other program lines ]
  EndPaint(hwnd, &ps);(在前面的章節經常用到)
 
  B)在處理非WM_PAINT時
  hdc = GetDC(hwnd);
  [ other program lines ]
  ReleaseDC(hwnd, hdc);
 
  C)獲得整個視窗的裝置環境控制程式碼
  hdc = GetWindowDC(hwnd);
  [ other program lines ]
  ReleaseDC(hwnd, hdc);
 
  D)獲得整個螢幕的裝置環境控制程式碼
  hdc = CreateDc(TEXT("DISPLAY", NULL, NULL, NULL);
 
  E)只獲取整個螢幕的裝置環境控制程式碼而不繪圖
  hdc = CreateIC(TEXT("DISPLAY", NULL, NULL, NULL);

  某些情況下,我們需要改變某些裝置環境的屬性,用改變後的屬性進行繪圖,然後恢復原來的裝置環境。可以透過下面的函式來儲存現在的裝置環境:
  idSaved = SaveDC(hdc);
  然後用下面的函式恢復原來的裝置環境:
  RestoreDC(hdc, idSaved);
  或者用下面的方法實現同樣的功能:
  SaveDC(hdc);
  RestoreDC(hdc, -1);

  Windows提供了一些GDI(畫筆,刷子等),我們可以建立這些物件把它們選入裝置環境中,Windows就可以用這些物件繪製各種圖形了。
 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1003895/,如需轉載,請註明出處,否則將追究法律責任。

相關文章